- 实际需求
调用微服务的Rest地址进行POST请求,可能想到的是用idea自带的测试工具“Test RESTful Web Service”,或者是专业的postman,以及其它的优秀工具。可是我遇到的确只有一个Linux操作后台的命令。没办法只能用curl命令了,梳理下curl调用post的基本命令curl -X POST -H 'Content-Type: application/json' -H 'Data_Type: msg' -i 10.1.1.1/xx/xx/xx' --data '{导入的数据对象}'
- 报错信息
小心意义在编译软件中整理好Json数据及curl地址,满怀激动的小手点击Enter发送请求。谁知满屏的报错信息,一下傻眼了
- 问题解决思路
看着报错的信息,初步判定是字符编码的问题(毕竟满屏的报错信息咱也就能看到个UTF-8)
在线找解决办法,看到最多的是说地址请求头的时候加编码格式“charset=UTF-8”,那就加进去试下呗。
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Data_Type: msg' -i 10.1.1.1/xx/xx/xx' --data '{导入的数据对象}'
可是问题并没有解决。在想是不连接shell工具的编码导致的呢,说到就去试。我用的是XShell工具。在“文件“–》“属性”–》”终端“—》”编码“中选择UTF-8编码格式。
设置编码格式后重新打开一个窗口在调用。返回了想要的结果。编码问题顺利解决
延伸:curl命令加编码格式只是指定返回方按照对应的编码,而连接后台的工具在发送请求的时候是按照选定的编码格式进行转换的。