http://llying.iteye.com/blog/456455
HttpClient发布4.0了 而且底层完全重写了,据说无论是效率还是结构都有质的飞跃。
现在也要与时具进,研究研究。
- package test.httpclient4.proxy;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpHost;
- import org.apache.http.HttpResponse;
- import org.apache.http.HttpStatus;
- import org.apache.http.StatusLine;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.conn.params.ConnRoutePNames;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicStatusLine;
- import org.apache.http.util.EntityUtils;
- public class GetHttpByProxy {
- public static void main(String[] args) throws ClientProtocolException,
- IOException {
- //实例化一个HttpClient
- HttpClient httpClient = new DefaultHttpClient();
- //设定目标站点
- HttpHost httpHost = new HttpHost("www.shanhe114.com");
- //设置代理对象 ip/代理名称,端口
- HttpHost proxy = new HttpHost("192.168.1.28", 5608);
- //对HttpClient对象设置代理
- httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
- proxy);
- HttpGet httpGet = new HttpGet("/");
- //这里也可以直接使用httpGet的绝对地址,当然如果不是具体地址不要忘记/结尾
- //HttpGet httpGet = new HttpGet("http://www.shanhe114.com/");
- //HttpResponse response = httpClient.execute(httpGet);
- HttpResponse response = httpClient.execute(httpHost, httpGet);
- if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
- //请求成功
- //取得请求内容
- HttpEntity entity = response.getEntity();
- //显示内容
- if (entity != null) {
- // 显示结果
- BufferedReader reader = new BufferedReader(new InputStreamReader(entity
- .getContent(), "UTF-8"));
- String line = null;
- StringBuffer strBuf = new StringBuffer((int) entity.getContentLength());
- while ((line = reader.readLine()) != null) {
- strBuf.append(line);
- }
- strBuf.trimToSize();
- System.out.println(strBuf.toString());
- }
- if (entity != null) {
- entity.consumeContent();
- }
- }
- }
- }
对于显示将结果转换成String以备后续使用,HttpClient已经为我们提供了一个简便方法
如下
- System.out.println(EntityUtils.toString(entity,"utf-8"));