0%

java发送HTTP请求

java发送HTTP请求的坑

坑1

特殊字符编码问题,对于链接中有特殊字符的参数必须进行encode,不然会报400错误
比较好的写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String param="";
StringBuffer sf = new StringBuffer();
for (HashMap.Entry entry:hashMap.entrySet()
) {
String[] arrStr= new String[0];
try {
arrStr = new String[]{entry.getKey().toString(),
java.net.URLEncoder.encode(entry.getValue().toString(),"utf-8")};
System.out.println(arrStr.toString());
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}

String paramString = "&"+param.join("=",arrStr);
sf.append(paramString);
}

坑2

java中用于编码的包有两个,一个是java.net下的URLencoder,一个是org.sun.xxxx下的URLencoder,两个类下的encode方法参数都一样,我之前开始使用的sun下的包,结果死活不行,还不报错,坑的一批。

-------- 本文结束 感谢阅读 --------