`
xurichusheng
  • 浏览: 346186 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HttpClient 代理实例(Get方式)

 
阅读更多

 

HttpClient 代理实例(Get方式)

 

使用的jar包:

commons-codec-1.4.jar

commons-httpclient.jar

commons-logging-1.1.1.jar

httpclient-4.1.2.jar

httpclient-cache-4.1.2.jar

httpcore-4.1.2.jar

httpmime-4.1.2.jar

 

使用 HttpClient 需要以下 6 个步骤:

1. 创建 HttpClient 的实例

2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址

3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例

4. 读 response

5. 释放连接。无论执行方法是否成功,都必须释放连接

6. 对得到后的内容进行处理

 

import java.io.IOException;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.ProxyHost;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.http.client.ClientProtocolException;

/**
 * @ClassName: ProxySample
 * @Description: 测试HttpClient代理
 * @author
 * @date 2012-1-10 上午9:45:10
 * @version V1.0
 */
public class ProxySample {

	/**
	 * @Title: main
	 * @Description: 测试HttpClient代理
	 * @param args
	 * @author
	 * @date 2012-1-10
	 */
	public static void main(String[] args) {

		// 创建 HttpClient 的实例
		HttpClient httpClient = new HttpClient();

		// 代理的主机
		ProxyHost proxy = new ProxyHost("openproxy.huawei.com", 8080);

		// 使用代理
		httpClient.getHostConfiguration().setProxyHost(proxy);

		// 创建Get连接方法的实例
		HttpMethod getMethod = new GetMethod("http://www.apache.org");

		// 使用系统提供的默认的恢复策略
		getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler());

		try {
			// 请求URI
			System.out.println("executing request " + getMethod.getURI());

			// 执行getMethod
			int status = httpClient.executeMethod(getMethod);

			System.out.println("status:" + status);

			// 连接返回的状态码
			if (HttpStatus.SC_OK == status) {

				System.out.println("Connection to " + getMethod.getURI()
						+ " Success!");

				// 获取到的内容
				String responseBody = getMethod.getResponseBodyAsString();

				System.out.println(responseBody);
			}

		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (URIException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 释放连接
			getMethod.abort();
		}
	}

}
 

 

分享到:
评论
1 楼 xurichusheng 2012-01-10  
由于是执行在网络上的程序,在运行executeMethod方法的时候,需要处理两个异常,分别是HttpException和IOException。

      引起第一种异常的原因主要可能是在构造getMethod的时候传入的协议不对,比如不小心将"http"写成"htp",或者服务器端返回的内容不正常等,并且该异常发生是不可恢复的;

      第二种异常一般是由于网络原因引起的异常,对于这种异常 (IOException),HttpClient会根据你指定的恢复策略自动试着重新执行executeMethod方法。HttpClient的恢复策略可以自定义(通过实现接口HttpMethodRetryHandler来实现)。

     通过httpClient的方法setParameter设置实现的恢复策略,本文中使用的是系统提供的默认恢复策略,该策略在碰到第二类异常的时候将自动重试3次。(通过注释第37行代码,运行后查看控制台窗口就可以看到会自动重连3次)

相关推荐

    Android的HttpClient开发实例

    在Android中使用`HttpClient`,你需要创建一个`HttpClient`实例,然后通过它来创建`HttpGet`或`HttpPost`对象,分别用于发送GET和POST请求。例如: ```java HttpClient httpClient = new DefaultHttpClient(); ...

    httpclient的入门实例

    1. **创建HttpClient实例**:使用`HttpClientBuilder`或`HttpClients`静态工厂方法创建一个HttpClient实例。 ```java HttpClient httpClient = HttpClients.createDefault(); ``` 2. **构建HttpRequest**:...

    HttpClient实现POST GET和文件下载

    1. **创建HttpClient对象**:首先,我们需要实例化一个`CloseableHttpClient`对象,这是HttpClient的核心组件。 2. **构建HttpPost请求**:通过`HttpPost`类创建一个请求对象,并设置请求的目标URL。 3. **设置请求...

    httpClient 网络传输的实例

    1. **创建HttpClient对象**:首先,我们需要创建一个HttpClient实例,这通常是通过HttpClientBuilder或HttpAsyncClientBuilder构建的。例如: ```java CloseableHttpClient httpClient = HttpClients.create...

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    // 创建HttpClient实例 HttpGet httpGet = new HttpGet(requestUrl); // 构建HttpGet对象并设置请求URL try { HttpResponse response = httpClient.execute(httpGet); // 执行GET请求 ...

    httpclient方式调用url

    使用HttpClient调用URL的基本步骤包括创建HttpClient实例、构建HttpGet或HttpPost对象、设置请求头(如Content-Type、Authorization等)以及执行请求。 1. **HttpClient实例化**:初始化HttpClient对象,例如: ``...

    HttpClient使用HttpGet进行json数据传输(所使用的jar.zip)

    5. **执行请求**:使用HttpClient实例执行HttpGet请求,并获取响应: ```java CloseableHttpResponse response = httpClient.execute(httpGet); ``` 6. **处理响应**:响应对象包含HTTP状态码、响应头和响应体。...

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    要创建一个简单的HttpClient实例,你需要以下步骤: 1. 引入Apache HttpClient库: 在你的项目中,确保已经添加了Apache HttpClient的依赖。例如,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    HttpClient (POST GET PUT)请求

    HttpClient实例负责发起网络请求,HttpRequest表示我们想要执行的HTTP操作(如GET、POST或PUT),而HttpResponse则包含了服务器返回的数据和状态信息。 **GET请求** GET请求是最常见的HTTP请求,用于获取资源。在...

    HttpClient应用实例2

    读者将学习到如何配置HttpClient实例,设置请求参数,处理响应,并通过源码分析了解其实现细节。同时,还会接触到日志管理和编码转换的相关知识,这些都是Java开发中与网络通信密切相关的技能。

    HttpClient模拟get,post请求并发送请求参数(json等)

    // 创建HttpClient实例 // 执行GET请求 // 返回响应对象 } public static CloseableHttpResponse executeHttpPost(String url, String json) throws IOException { // 创建HttpPost实例 // 设置JSON数据 //...

    C#HTTPclient 实例应用

    // 从依赖注入容器中获取HttpClient实例 var httpClient = serviceProvider.GetService<HttpClient>(); ``` ### 2. 发送GET请求 `HttpClient`提供了`GetAsync`方法用于发送GET请求。下面是如何使用它的示例: ```...

    MFC的HttpClient的Get和Post方法

    本文将详细讲解如何在MFC中利用HttpClient进行GET和POST操作。 首先,我们需要理解HTTP协议的基本概念。HTTP(超文本传输协议)是一种应用层协议,用于在Web上交换各类数据。GET和POST是HTTP请求中最常见的两种方法...

    HttpClient实例+必备3个jar包

    在"HttpClient实例+必备3个jar包"的项目中,包含了以下关键知识点: 1. **HttpClient类库**:HttpClient库提供了丰富的API,可以创建复杂的HTTP请求,包括设置请求头、携带请求体、处理重定向、管理Cookie等。通过...

    JavaHttpClient实例

    本实例将深入探讨如何在Java中使用HttpClient进行网络通信。 首先,你需要在项目中引入HttpClient的相关依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    使用 `HttpClients.custom().build()` 创建了一个自定义的 HttpClient 实例。这个配置允许我们根据需要调整客户端的行为,例如设置超时、代理等,但在示例中并未进行具体配置。 3. **GET 请求**: - `doGetJson` ...

    HttpClient模拟登录实例

    创建HttpClient实例是模拟登录的第一步。这可以通过`HttpClientBuilder`或直接使用`HttpClient`的静态工厂方法完成。例如: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. **...

    JAVA-用HttpClient来模拟浏览器GET,POST.docx

    在上面的示例代码中,我们首先创建了一个HttpClient实例,然后设置了要访问的URL,接着创建了一个GetMethod对象,并执行了GET请求。最后,我们读取了服务器返回的响应结果,并将其输出到控制台。 在下面的章节中,...

    webservice调用实例,通过HttpClient调用

    本示例将深入探讨如何使用Apache HttpClient库在Java环境中调用Web服务,特别是通过Maven构建项目的方式进行。HttpClient是一个强大的HTTP客户端编程工具包,能够支持多种HTTP协议特性,使得Web服务调用变得更加灵活...

Global site tag (gtag.js) - Google Analytics