【转】HttpClient4基础2--通过认证代理访问网页
HttpClient发布4.0了 而且底层完全重写了,据说无论是效率还是结构都有质的飞跃。?
现在也要与时具进,研究研究。
?
?
[java]?view plaincopy- 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.auth.AuthScope;?????
- import?org.apache.http.auth.UsernamePasswordCredentials;?????
- import?org.apache.http.client.ClientProtocolException;?????
- import?org.apache.http.client.CredentialsProvider;?????
- 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.BasicCredentialsProvider;?????
- import?org.apache.http.impl.client.DefaultHttpClient;??????
- import?org.apache.http.util.EntityUtils;?????
- public?class?GetHttpByProxyCredentials?{?????
- ????
- ????/**???
- ?????*?@param?args???
- ?????*?@throws?IOException????
- ?????*?@throws?ClientProtocolException????
- ?????*/????
- ????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("proxy.tt",?8080);?????
- ????????//实例化验证?????
- ????????CredentialsProvider?credsProvider?=?new?BasicCredentialsProvider();?????
- ????????//设定验证内容?????
- ????????UsernamePasswordCredentials?creds?=?new?UsernamePasswordCredentials("fttj",?"ft07");?????
- ????????//创建验证?????
- ????????credsProvider.setCredentials(?????
- ????????????new?AuthScope(AuthScope.ANY_HOST,?AuthScope.ANY_PORT),??????
- ????????????creds);?????
- ????????httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,?proxy);?????
- ????????((DefaultHttpClient)httpClient).setCredentialsProvider(credsProvider);?????
- ????????????????
- ????????//?目标地址???????
- ????????HttpGet?httpget?=?new?HttpGet("/");???????
- ????????//?执行???????
- ????????HttpResponse?response?=?httpClient.execute(httpHost,?httpget);???????
- ????????if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){?????
- ????????????//请求成功?????
- ????????????//取得请求内容?????
- ????????????HttpEntity?entity?=?response.getEntity();?????
- ????????????//显示内容?????
- ????????????if?(entity?!=?null)?{?????
- ????????????????//?显示结果?????
- ?????????????????????
- ????????????????System.out.println(EntityUtils.toString(entity,"utf-8"));?????
- ?????????????????????
- ????????????}?????
- ????????????if?(entity?!=?null)?{?????
- ????????????????entity.consumeContent();?????
- ????????????}?????
- ????????}?????
- ????}?????
- }????
?