随笔-84  评论-56  文章-0  trackbacks-0

在用到HttpClient的基本请求和响应时候,发现默认的编码是“ISO-8859-1”,这样就存在中文乱码问题了,解决办法如下,记录一下:

http://hc.apache.org/httpclient-3.x/charencodings.html#Request_Response_Body

三种形式:
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
        postMethod.addRequestHeader(
"Content-Type","text/html;charset=UTF-8");
        postMethod.setRequestHeader(
"Content-Type""text/html;charset=UTF-8");
posted on 2009-01-22 00:55 忆风 阅读(44324) 评论(9)  编辑  收藏 所属分类: Java EE

评论:
# re: HttpClient POST的中文编码问题 2009-06-05 17:35 | okhaoba
我的方法:

HttpClient client = new HttpClient();
//设置超时时间
client.getHttpConnectionManager().getParams().setSoTimeout(timeOut);
//使用post方式,参数长度不受限制
//postMethod = new PostMethod(url);
postMethod = new UTF8PostMethod(url);
//设置参数
NameValuePair[] nameValue = new NameValuePair[] { new NameValuePair("××param", xmlParamStr) };
postMethod.setRequestBody(nameValue);
//发送请求
state = client.executeMethod(postMethod);


private static class UTF8PostMethod extends PostMethod {
public UTF8PostMethod(String url) {
super(url);
}

@Override
public String getRequestCharSet() {
//return super.getRequestCharSet();
return "UTF-8";
}
}  回复  更多评论
  
# re: HttpClient POST的中文编码问题 2009-08-04 17:27 | dyj
很不错!   回复  更多评论
  
# re: HttpClient POST的中文编码问题 2009-08-05 11:53 | fangwei
多谢  回复  更多评论
  
# re: HttpClient POST的中文编码问题 2013-02-20 14:03 | 网络记事本
楼主好,我把这行添加上好使:
method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");

下面的二个 RequestHeader 试了不行。  回复  更多评论
  
# re: HttpClient POST的中文编码问题 2013-03-12 14:17 | 有乱码
乱码  回复  更多评论
  
# re: HttpClient POST的中文编码问题 2014-05-05 18:29 | zuidaima
参考代码:java apache commons HttpClient发送get和post请求的学习整理,下载地址:http://www.zuidaima.com/share/1754065983409152.htm  回复  更多评论
  
# re: HttpClient POST的中文编码问题 2015-01-15 20:53 | sd
sd  回复  更多评论
  
# re: HttpClient POST的中文编码问题 2015-06-12 20:57 | 阿斯蒂芬
对方是个玩  回复  更多评论
  
# re: HttpClient POST的中文编码问题[未登录] 2016-01-08 15:02 | hp
RequestEntity requestEntity = new StringRequestEntity(paramStr, "text/html", "UTF-8");
post.setRequestEntity(requestEntity);

这个似乎才有效  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: