首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

[转]HttpClient4基础1-经过匿名代理访问网页

2013-03-01 
[转]HttpClient4基础1--通过匿名代理访问网页HttpClient发布4.0了 而且底层完全重写了,据说无论是效率还是

[转]HttpClient4基础1--通过匿名代理访问网页

HttpClient发布4.0了 而且底层完全重写了,据说无论是效率还是结构都有质的飞跃。?
现在也要与时具进,研究研究。

?

[c-sharp]?view plaincopy
  1. package?test.httpclient4.proxy;?????
  2. ????
  3. import?java.io.BufferedReader;?????
  4. import?java.io.IOException;?????
  5. import?java.io.InputStreamReader;?????
  6. ????
  7. import?org.apache.http.HttpEntity;?????
  8. import?org.apache.http.HttpHost;?????
  9. import?org.apache.http.HttpResponse;?????
  10. import?org.apache.http.HttpStatus;?????
  11. import?org.apache.http.StatusLine;?????
  12. import?org.apache.http.client.ClientProtocolException;?????
  13. import?org.apache.http.client.HttpClient;?????
  14. import?org.apache.http.client.methods.HttpGet;?????
  15. import?org.apache.http.conn.params.ConnRoutePNames;?????
  16. import?org.apache.http.impl.client.DefaultHttpClient;?????
  17. import?org.apache.http.message.BasicStatusLine;?????
  18. import?org.apache.http.util.EntityUtils;?????
  19. ????
  20. ????
  21. public?class?GetHttpByProxy?{?????
  22. ????
  23. ????public?static?void?main(String[]?args)?throws?ClientProtocolException,?????
  24. ????????????IOException?{?????
  25. ????????//实例化一个HttpClient?????
  26. ????????HttpClient?httpClient?=?new?DefaultHttpClient();?????
  27. ????????//设定目标站点?????
  28. ????????HttpHost?httpHost?=?new?HttpHost("www.shanhe114.com");?????
  29. ????????//设置代理对象?ip/代理名称,端口?????
  30. ????????HttpHost?proxy?=?new?HttpHost("192.168.1.28",?5608);?????
  31. ????????//对HttpClient对象设置代理?????
  32. ????????httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,?????
  33. ????????????????proxy);?????
  34. ????????HttpGet?httpGet?=?new?HttpGet("/");?????
  35. ????????//这里也可以直接使用httpGet的绝对地址,当然如果不是具体地址不要忘记/结尾?????
  36. ????????//HttpGet?httpGet?=?new?HttpGet("http://www.shanhe114.com/");?????
  37. ????????//HttpResponse?response?=?httpClient.execute(httpGet);?????
  38. ?????????????
  39. ????????HttpResponse?response?=?httpClient.execute(httpHost,?httpGet);?????
  40. ????????if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){?????
  41. ????????????//请求成功?????
  42. ????????????//取得请求内容?????
  43. ????????????HttpEntity?entity?=?response.getEntity();?????
  44. ????????????//显示内容?????
  45. ????????????if?(entity?!=?null)?{?????
  46. ????????????????//?显示结果?????
  47. ????????????????BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(entity?????
  48. ????????????????????????.getContent(),?"UTF-8"));?????
  49. ????????????????String?line?=?null;?????
  50. ????????????????StringBuffer?strBuf?=?new?StringBuffer((int)?entity.getContentLength());?????
  51. ????????????????while?((line?=?reader.readLine())?!=?null)?{?????
  52. ????????????????????strBuf.append(line);?????
  53. ????????????????}?????
  54. ????????????????strBuf.trimToSize();?????
  55. ????????????????System.out.println(strBuf.toString());?????
  56. ????????????}?????
  57. ????????????if?(entity?!=?null)?{?????
  58. ????????????????entity.consumeContent();?????
  59. ????????????}?????
  60. ????????}?????
  61. ????}?????
  62. }????

?

?

对于显示将结果转换成String以备后续使用,HttpClient已经为我们提供了一个简便方法?
如下

?

[java]?view plaincopy
  1. System.out.println(EntityUtils.toString(entity,"utf-8")); ? ?

热点排行