HTTP POST请求中文乱码问题解决

先上代码

public static String sendUrl(String urlString, String pram,String readCharset ) {

StringBuffer sb = new StringBuffer();
DefaultHttpClient httpclient = new DefaultHttpClient();
BufferedReader reader = null;
try{
// 构造最简单的字符串数据    
    StringEntity reqEntity = new StringEntity(pram,"utf-8");
HttpPost httppost = new HttpPost(urlString);  
httppost.addHeader("Content-Type","application/x-www-form-urlencoded; charset=\"UTF-8\"");

// 设置请求的数据    
   httppost.setEntity(reqEntity);
   // 执行
   HttpResponse response = httpclient.execute(httppost);
   HttpEntity entity = response.getEntity();
   
   // 显示结果    
    reader = new BufferedReader(new InputStreamReader(entity.getContent(), readCharset));    
    String line = reader.readLine();    
    while (line  != null) {    
    sb.append(line);
    line = reader.readLine(); 
    }    
    if (entity != null) {    
      entity.consumeContent();    
    }    
        
}catch (Exception e) {
log.error("HttpPostMethodUtil异常",e);
}finally{
try {
if(reader != null){
reader.close();
}
} catch (IOException e) {
log.error("",e);
}
httpclient.getConnectionManager().shutdown();
}
return sb.toString();

}

在网上找的资料说如下两行代码可以解决乱码问题,多次尝试发现并不行。

StringEntity reqEntity = new StringEntity(pram);

reqEntity.setContentEncoding("utf-8");

最后改成如下一行代码,发现解决了中文乱码问题。

StringEntity reqEntity = new StringEntity(pram,"utf-8");


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值