本地我们经常使用较为方便的postman来验证调用接口,但是服务器上是没有postman的,这时可以用curl命令实现快速验证访问接口:
curl -l -H "Content-type: application/json" -X POST -d ‘{"url":"http://www.dwntme.com/h.ZYJB5zD"}‘ http://127.0.0.1:8987
上面是post格式的curl请求,-d 后面是json格式的参数。
希望对你有帮助。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用curl调用post接口json参数中带中文出现400错误,在postman中测试正常!相关的知识,希望对你有一定的参考价值。
先上脚本:(接口的真实地址我就不发上来了.)#!/bin/shaa='"uuid":"1234567890","alarmLevel":"1","alarmType":"15","alarmContent":"项目中断"';#aa='"uuid":"1234567890","alarmLevel":"1","alarmType":"15","alarmContent":"1111"';echo $aa;re=`curl -X POST -H "Content-Type:application/json;charset=UTF-8" -d $aa http://xxxxxxxxxx.com/pjops/alarm/reportAlarm`;echo $re;问题:如标题所说,我在前面那个 aa参数带中文的时候 返回400错误.(如截图第一张) 用下面接口则正常返回数据. 脚本文件 编码 fileencoding 我已经设置为utf-8了而我用谷歌的工具postman测试不管用中文还是英文都完全没有问题.请问这个大概是什么原因? 百度几天了查不出来. 没有方向了. 或者是有什么代替方法可以在linux下调用POST接口的? 谢谢
将json使用base64 编码然后发送到服务器呢 参考技术A 转一下编码 unicode 呢追问怎么转啊? 我按百度上用 iconv script_001.sh -f US-ASCII -t UTF-8 -o script_002.sh 这个命令 转发现编码都一样的 转不成功,,,,
追答直接百度在线转。。。
本地我们经常使用较为方便的postman来验证调用接口,但是服务器上是没有postman的,这时可以用curl命令实现快速验证访问接口:
curl -l -H "Content-type: application/json" -X POST -d ‘{"url":"http://www.dwntme.com/h.ZYJB5zD"}‘ http://127.0.0.1:8987
上面是post格式的curl请求,-d 后面是json格式的参数。
希望对你有帮助。
以上是关于用curl调用post接口json参数中带中文出现400错误,在postman中测试正常!的主要内容,如果未能解决你的问题,请参考以下文章
post请求 参数json序列化报错: cannot deserialize from Object value