`
sleeply520
  • 浏览: 3771 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

【转】HttpClient4基础2--通过认证代理访问网页

阅读更多

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

 

 

[java] view plaincopy
  1. package test.httpclient4.proxy;     
  2. import java.io.BufferedReader;       
  3. import java.io.IOException;     
  4. import java.io.InputStreamReader;       
  5. import org.apache.http.HttpEntity;       
  6. import org.apache.http.HttpHost;       
  7. import org.apache.http.HttpResponse;       
  8. import org.apache.http.HttpStatus;     
  9. import org.apache.http.auth.AuthScope;     
  10. import org.apache.http.auth.UsernamePasswordCredentials;     
  11. import org.apache.http.client.ClientProtocolException;     
  12. import org.apache.http.client.CredentialsProvider;     
  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.BasicCredentialsProvider;     
  17. import org.apache.http.impl.client.DefaultHttpClient;      
  18. import org.apache.http.util.EntityUtils;     
  19. public class GetHttpByProxyCredentials {     
  20.     
  21.     /**   
  22.      * @param args   
  23.      * @throws IOException    
  24.      * @throws ClientProtocolException    
  25.      */    
  26.     public static void main(String[] args) throws ClientProtocolException, IOException {     
  27.         //实例化一个HttpClient     
  28.         HttpClient httpClient = new DefaultHttpClient();       
  29.         //设定目标站点     
  30.         HttpHost httpHost = new HttpHost("www.shanhe114.com");       
  31.         //设置代理对象 ip/代理名称,端口     
  32.         HttpHost proxy = new HttpHost("proxy.tt"8080);     
  33.         //实例化验证     
  34.         CredentialsProvider credsProvider = new BasicCredentialsProvider();     
  35.         //设定验证内容     
  36.         UsernamePasswordCredentials creds = new UsernamePasswordCredentials("fttj""ft07");     
  37.         //创建验证     
  38.         credsProvider.setCredentials(     
  39.             new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),      
  40.             creds);     
  41.         httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);     
  42.         ((DefaultHttpClient)httpClient).setCredentialsProvider(credsProvider);     
  43.                 
  44.         // 目标地址       
  45.         HttpGet httpget = new HttpGet("/");       
  46.         // 执行       
  47.         HttpResponse response = httpClient.execute(httpHost, httpget);       
  48.         if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){     
  49.             //请求成功     
  50.             //取得请求内容     
  51.             HttpEntity entity = response.getEntity();     
  52.             //显示内容     
  53.             if (entity != null) {     
  54.                 // 显示结果     
  55.                      
  56.                 System.out.println(EntityUtils.toString(entity,"utf-8"));     
  57.                      
  58.             }     
  59.             if (entity != null) {     
  60.                 entity.consumeContent();     
  61.             }     
  62.         }     
  63.     }     
  64. }    

 

分享到:
评论

相关推荐

    HttpClient4.5.1手册

    **2.8 HttpClient 代理配置:** HttpClient支持通过配置代理服务器来转发请求,这对于处于防火墙后的客户端特别有用。 #### 三、HTTP状态管理 **3.1 HTTP Cookies:** Cookie是服务器存储在客户端的小型文本文件,...

    HTTPclient.jar

    8. **代理支持**:如果需要通过代理服务器访问网络,HTTPClient可以配置代理设置,包括基本认证和NTLM认证。 9. **国际化与编码处理**:库内支持多种字符集和编码方式,可以正确处理各种语言的URL和请求内容。 10....

    http client 4.2

    6. **认证机制**:支持多种认证机制,包括基本认证、摘要认证、NTLM等,方便处理跨域访问的安全问题。 7. **重试策略**:具备自动重试机制,对于短暂的网络故障,HttpClient会尝试重新发送请求。 三、HttpClient ...

    使用_HttpClient_和_HtmlParser_实现简易爬虫

    ### 使用HttpClient和HtmlParser实现简易爬虫 #### HttpClient与HtmlParser简介 在互联网技术领域,爬虫技术是一种非常重要的工具,被广泛应用于数据抓取、信息检索等方面。爬虫技术的核心在于能够高效地获取和...

    完整版网页访问模块.rar

    7. **代理设置**:有时需要通过代理服务器访问网页,模块应支持设置HTTP/HTTPS代理,并处理相应的认证需求。 8. **错误处理**:当遇到网络错误、超时或其他问题时,模块应能优雅地处理并提供有用的错误信息。 9. *...

    https/http 的调用类和代理proxy调用类

    在某些情况下,网络访问可能需要通过代理服务器,比如在企业网络环境中或者为了匿名性。`HttpAndHttpsProxy.java`很可能实现了通过代理进行HTTP和HTTPS请求的功能。这可能涉及到配置代理的主机名、端口,以及可能的...

    java爬虫http包.zip

    6. **HttpClient Context**:存储请求上下文信息,如认证、重定向策略、连接管理器等,方便在不同请求之间共享状态。 使用这两个库,开发者可以轻松地构建一个功能完备的Java网络爬虫。例如,可以使用HttpClient...

    JAVA上百实例源码以及开源项目源代码

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

    vb管理网络连接

    通过创建一个代理类,VB应用程序可以像调用本地方法一样调用Web服务的方法。这通常涉及使用ServiceReference或Add Web Reference工具添加服务引用。 5. **FTP操作**: 对于文件传输,VB可以使用FTP协议。在VB.NET...

Global site tag (gtag.js) - Google Analytics