httpclient4.x 编码

一、设置请求的编码

第一种方法:

在Hedaer中设置Content-Type

[java]  view plain copy
  1. HttpGet httpGet = new HttpGet(url);  
  2. httpGet.addHeader("Content-Type""text/html;charset=UTF-8");  

第二种方法:

设置HttpClient的CONTENT_CHARSET

[java]  view plain copy
  1. HttpClient httpClient = new DefaultHttpClient();  
  2. httpClient.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");  

第三种方法:

设置get/post method的CONTENT_CHARSET

[java]  view plain copy
  1. HttpGet httpGet = new HttpGet(url);  
  2. httpGet.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8");  


这三种设置方法的优先级依次递增,也就是说如果同时设置,则以后面的为准。如果都没有设置,默认charset是ISO-8859-1。


二、获取response的编码:

[java]  view plain copy
  1. HttpResponse response = httpClient.execute(httpGet);  
  2. System.out.println(response.getParams().getParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET));  


三、获取response内容:

[java]  view plain copy
  1. HttpEntity httpEntity =response.getEntity();  
  2. BufferedReader br = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));  
  3. String line;  
  4. while((line = br.readLine()) != null){  
  5.     System.out.println(line);  
  6. <pre name="code" class="java"><span style="white-space:pre">    </span>System.out.println("\n");</pre>}  
  7. <pre></pre>  
  8. <p></p>  
  9. <pre></pre>  
  10. <p></p>  
  11. <p><span style="font-size:14px">也可在获得response后转码:</span></p>  
  12. <p></p>  
  13. <pre name="code" class="java">HttpEntity httpEntity =response.getEntity();  
  14. <pre name="code" class="java">BufferedReader br = new BufferedReader(new InputStreamReader(httpEntity.getContent()));  
  15. String line;  
  16. while((line = br.readLine()) != null){  
  17.     System.out.println(new String(line.getBytes("ISO-8859-1"),"UTF-8"));  
  18.     System.out.println("\n");  
  19. }   </pre>  
  20. <pre></pre>  
  21. <p></p>  
  22. <pre></pre>  
  23. <br>  
  24. <br>  
  25. <p></p>  
  26. <p><br>  
  27. </p>  
  28. 参考:<a href="http://blog.csdn.net/asdf2hjkl/article/details/8002026" target="_blank">httpclient4 中文版帮助文档,最新官方版翻译版(第一章 下)</a>  
  29. <p><a href="http://blog.csdn.net/xingyue425/article/details/7258934" target="_blank">httpclient编码</a></p>  
  30. <p><a href="http://blog.csdn.net/mgoann/article/details/4056297" target="_blank">HttpClient字符编码</a><br>  
  31. <br>  
  32. </p>  
  33.   
  34. </pre>  

原文链接:http://blog.csdn.net/blue_jjw/article/details/8773960

你可能感兴趣的:(httpclient4.x 编码)