今天做项目的时候,需要向服务器接口 传递 json参数,使用 apache 的 httpclient,当时没有对参数做特殊处理直接提交了,结果运行时报错了,如下:
HTTP 400 Bad Request
后来在网上查资料找到原因了:HttpGet或 HttpPost都不能传包含 ” 、“{“、”}”这样的参数,需要对特殊字符进行转义,把 ” 转成%22,把 { 转成%7b,把 } 转成%7d
String url = "http://127.0.0.1:9000/signal/Resource?param={\"name\":\"service1\",\"param\":{\"id\":\"1\"}}";
url = url.replace("\"", "%22").replace("{", "%7b").replace("}", "%7d");
注意:参数里面如果有 空格的话,也需要转义,否则会有问题。
本文介绍了在使用Apache HttpClient向服务器接口发送JSON参数时遇到HTTP400错误的原因及解决方案,特别强调了对特殊字符进行转义的重要性。

1万+

被折叠的 条评论
为什么被折叠?



