HTTP response code: 400 for URL
最近在项目中多次遇到这个问题。
原因我遇到的主要有以下几种:
空格,中文,特殊字符 等问题。
但是在部分情况下也是可以的,这个问题没有做深入了解。
解决方案是用
URLEncoder.encode(name,"UTF-8")
把具体的参数名做编码。而不是全部做转换。
如果全部做转换会把HTTP:// 中的斜线也转义,导致请求出现协议异常等问题。
正确的请求应该url在代码中是:
String url = "http://172.1.1.12:80"+ "?" +
"name=" + URLEncoder.encode(name,"UTF-8") + "&" +
"seed=" + URLEncoder.encode(seed,"UTF-8");
注意:只把需要请求的参数进行转义即可。
有些时候使用浏览器的地址栏,postman等方式却可以避免这种情况?
这是因为浏览器和一些工具会自动处理我们发送的不规则请求并进行转码。