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

[转]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"));    
分享到:
评论

相关推荐

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

    以下是一个简单的示例代码,展示了如何配置HttpClient4来通过匿名代理访问网页: ```java import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org.apache....

    C#做的代理服务器可以使用不同的代理访问网页

    总结起来,C#实现的代理服务器允许用户通过不同代理访问网页,提供了更高的网络访问灵活性和隐私保护。这种代理服务器的开发涉及C#网络编程、HTTP协议理解、代理服务器架构设计以及安全性考虑等多个方面的知识。

    C#实现HTTP代理

    在IT行业中,HTTP代理是一种网络通信机制,它允许客户端(如Web浏览器)通过另一台服务器作为中介来访问互联网上的资源。这种技术常用于提高匿名性、优化网络性能或绕过特定的网络限制。本篇文章将深入探讨如何使用...

    httpProxy-java

    在Java开发中,实现HTTP代理功能可以帮助我们处理各种网络请求,提高性能,以及实现数据抓取、匿名访问等复杂需求。 首先,让我们深入理解HTTP代理的工作原理。HTTP代理服务器接收客户端发起的HTTP请求,并代替...

    java-爬取代理IP

    代理IP,也叫代理服务器,是一种网络通信技术,它在客户端和目标服务器之间充当中介,允许用户通过不同的IP地址访问网络。这在数据采集、匿名浏览、负载均衡等方面有着广泛的应用。 在Java中实现网络爬虫,主要涉及...

    120个Java经典面试题和答案

    1. **Java基础**: - 数据类型:了解基本和引用数据类型,以及它们的区别。 - 变量:声明、初始化和作用域。 - 流程控制:if-else、switch、for、while等。 - 类与对象:封装、继承、多态的概念。 - 构造器:...

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

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

    java-interview-doc.rar_doc

    1. **Java基础** - **数据类型**:Java有两大类数据类型,基本类型(如int, char, boolean)和引用类型(如类,接口,数组)。 - **变量**:声明、初始化和使用变量的基本规则。 - **运算符**:包括算术、比较、...

    全自动提取IP代理.zip

    在IT行业中,IP代理是一种网络服务,它允许用户通过一个中间服务器(代理服务器)来访问互联网,以此隐藏用户的原始IP地址,提供匿名性或者提高访问速度。全自动提取IP代理指的是利用自动化工具或程序来批量获取可用...

    用C#编写的Proxy代理,网络编程参考

    代理服务器可以用于多种目的,如负载均衡、缓存、安全过滤、匿名访问等。在C#中,我们可以利用.NET Framework或.NET Core提供的Socket类和其他网络相关的类库来实现代理功能。 1. **ProxyConfig.cs**:这是一个配置...

    android 学习路线大纲

    1. **Java基础巩固** - 内部类:理解类中类的概念,以及它们在多线程和匿名类中的应用。 - Socket编程:学习网络通信的基础,包括TCP和UDP协议。 - 多线程和线程池:掌握并发编程,了解同步和异步操作,以及...

    获取数据-网站示例

    2. **代理设置**:为了增加请求的匿名性或避免频繁请求被封IP,我们可能需要通过代理服务器发送请求。`.NET`支持设置HTTP代理。 3. **请求头设置**:有时我们需要设置特定的请求头,如`User-Agent`,以模拟不同的...

    C#入门经典(VS2008)英文版

    ### C# 入门经典(VS2008)知识点概览 #### 一、C#语言基础 **1.1 引入C#** - **C#简介**:本书第一章介绍了C#...通过学习这些内容,读者可以全面掌握C#编程的基础知识,并能够开发出复杂的Windows和Web应用程序。

    Gososo

    - **代理设置**:GoSoSo允许用户设置代理服务器,这对于那些需要匿名浏览或避免IP被目标网站封锁的情况非常有用。代理服务器可以作为网络访问的中介,提供额外的安全性和隐私保护。 - **自动寻找连接**:程序能够...

    基于Java的高性能web代理程序 hyk-proxy.zip

    通过这种方式,代理服务器可以提高性能(通过缓存重复请求的内容)、提供匿名浏览、过滤网络内容、限制访问特定网站,甚至实现负载均衡。 在"hyk-proxy"项目中,我们可以推测它利用了Java的Socket编程来建立和管理...

    信息采集,c#.net能够抓取页面中的数据

    C#.NET允许通过HttpWebRequest或HttpClient配置代理,实现匿名抓取。 8. **Cookie管理**:有些网站需要登录才能访问特定数据,这时需要处理Cookie。C#.NET提供了CookieContainer类来管理Cookie,确保请求带有正确的...

    c#网络爬虫程序设计.zip

    它的语法简洁清晰,支持高级特性如泛型、匿名方法、LINQ等,对于构建网络爬虫来说,提供了良好的编程基础。 在设计网络爬虫时,首先需要了解HTTP协议。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议...

    ProxyNet C# 多线程代理服务搜索器

    4. 代理验证模块:找到代理后,程序可能还会进行有效性验证,通过发送请求检测代理是否可用,以及其速度和匿名级别。 总的来说,ProxyNet是一个实用的C#应用程序,通过多线程技术实现了高效地搜索和验证代理服务器...

    easysource:这是关于通过代理从网页下载数据资源

    在下载数据资源时,使用代理可以提高匿名性,减少被目标网站识别和封禁的风险,同时也可以通过分布在全球各地的代理服务器优化网络速度,尤其是在处理跨国数据访问时。 易源项目采用了Java编程语言,这得益于Java的...

    dotnet-V5数据采集器V5DataCollection

    V5DataCollection可能采用了高效的HTTP请求库,如HttpClient,以确保快速、准确地抓取网页数据,同时支持处理各种HTTP头信息和身份验证,适应不同网站的访问需求。 特别值得一提的是,V5数据采集器的代理轮询采集...

Global site tag (gtag.js) - Google Analytics