`

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

阅读更多
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"));





长春生活网
  • lib.rar (668.5 KB)
  • 下载次数: 95
分享到:
评论

相关推荐

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

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

    C#实现HTTP代理

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

    httpProxy-java

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

    java-爬取代理IP

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

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

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

    全自动提取IP代理.zip

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

    120个Java经典面试题和答案

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

    java-interview-doc.rar_doc

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

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

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

    获取数据-网站示例

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

    android 学习路线大纲

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

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

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

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

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

    Gososo

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

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

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

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

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

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

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

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

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

    dotnet-V5数据采集器V5DataCollection

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

Global site tag (gtag.js) - Google Analytics