原生java 是支持http请求的在java.net 这个包中就有,奈何用的人少,大家都更倾向于用httpClient,几年前还好,不过这个jar包最近跟新的幅度比较大,历代版本写法差距太大,导致网上出现问题找答案的时候定位太乱!!!
最近在项目中需要发送http Post请求,用的httpclient总是有乱码.
用到了其中的
MultipartEntityBuilder
在设置post 参数的时候,使用了
multipartEntityBuilder.addTextBody(key,value);
但是在调试的时候,总是看到value的编码是iso-8859-1
甚至我改成
multipartEntityBuilder.addTextBody(key,new String(value.getBytes("iso-8859-1","utf-8);
还是没有用,在断点调试的时候依旧是iso-8859-1
一般在这个情况下看看他的 是否有其他的函数,找了一下有这个
multipartEntityBuilder.setCharset()
这个一看肯定可以啊,然后并没有卵用,设置utf-8还是乱码
最后百度了一下,用的这个方法才ok
ContentType strContent=ContentType.create("text/plain",Charset.forName("UTF-8"));
multipartEntityBuilder.addTextBody(key,value,strContent);
真的是乱