Http的Get/Post请求带有特殊字符,400 Bad Request解决方案
2017-11-04 11:11
696 查看
今天做项目的时候,需要向服务器接口 传递 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");
注意:参数里面如果有 空格的话,也需要转义,否则会有问题。
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");
注意:参数里面如果有 空格的话,也需要转义,否则会有问题。
相关文章推荐
- Http的Get/Post请求带有特殊字符,400 Bad Request解决方案
- Http的Get/Post请求带有特殊字符,400 Bad Request解决方案
- C# winform端 通过HttpWebRequest进行post和get请求,数据格式为json,后台java端接收,其中有关传输特殊字符(\t,\r,',\n,n)等处理
- 关于Android HTTP请求URI中包含特殊字符,例如中文,空格等,请求400
- HTTP 400 错误 - 请求无效 (Bad request)
- HTTP 400 错误 - 请求无效 (Bad request)
- [WebService]请求因 HTTP 状态 400 失败: Bad Request。
- HTTP 400 错误 - 请求无效 (Bad request)
- HTTP 400 错误 - 请求无效 (Bad request)
- 错误:bad request 400(建立socket http get请求)-linux
- Android http post 文件 bad request 400
- HTTP 400 错误 - 请求无效 (Bad request)
- Spring MVC HTTP 400 错误 - 请求无效 (Bad request)
- SQL 2005 Report Server 请求因 HTTP 状态 400 失败: Bad Request 处理方法
- C# httprequest post 内容有百分号,部分特殊字符乱码问题
- SQL 2005 Report Server 请求因 HTTP 状态 400 失败: Bad Request 处理方法 的解决方法
- 异常:请求因HTTP状态400失败:Bad Request。
- 我发起一个http url,本地没问题,发布到测试环境后,报错post 400 bad request,原来是测试的tomcat版本比较高,它对post的长度做了限制。
- 请求因 HTTP 状态 400 失败: Bad Request
- 报错 POST http://192.168.79.165:8015/marketing/manager 400 (BAD REQUEST) 解决办法