`

httpclient4.3 设置代理请求

阅读更多

      最近需要使用Httpclient做后台请求,使用的是httpclient4.3版本,apache网站上有,我这里就不提供下载链接了,搜一下就可以了,废话少说,直接上代码:

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class HttpClientTest {
	public static void main(String args[]) throws Exception {
		// 创建HttpClientBuilder
		HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
		// HttpClient
		CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
		// 依次是目标请求地址,端口号,协议类型
		HttpHost target = new HttpHost("10.10.100.102:8080/mytest", 8080,
				"http");
		// 依次是代理地址,代理端口号,协议类型
		HttpHost proxy = new HttpHost("yourproxy", 8080, "http");
		RequestConfig config = RequestConfig.custom().setProxy(proxy).build();

		// 请求地址
		HttpPost httpPost = new HttpPost("http://10.10.100.102:8080/mytest");
		httpPost.setConfig(config);
		// 创建参数队列
		List<NameValuePair> formparams = new ArrayList<NameValuePair>();
		// 参数名为pid,值是2
		formparams.add(new BasicNameValuePair("pid", "2"));

		UrlEncodedFormEntity entity;
		try {
			entity = new UrlEncodedFormEntity(formparams, "UTF-8");
			httpPost.setEntity(entity);
			CloseableHttpResponse response = closeableHttpClient.execute(
					target, httpPost);
			// getEntity()
			HttpEntity httpEntity = response.getEntity();
			if (httpEntity != null) {
				// 打印响应内容
				System.out.println("response:"
						+ EntityUtils.toString(httpEntity, "UTF-8"));
			}
			// 释放资源
			closeableHttpClient.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

1
0
分享到:
评论
3 楼 HanTeIsHanTe 2016-07-04  
楼主,你知道AsyncHttpClient 或者 OKHttpClient  请求代理如何设置被?

2 楼 zhangzhaoaaa 2015-10-19  
学渣村的好村长 写道
您好,您知道这么设置以后,如何设置代理服务器的用户名和密码么

好久没搞这个了,手边也没有这个环境,但是我帮你查了一下,请试试

HttpHost proxy = new HttpHost("proxy", 8080);

BasicScheme proxyAuth = new BasicScheme();
// Make client believe the challenge came form a proxy
proxyAuth.processChallenge(new BasicHeader(AUTH.PROXY_AUTH, "BASIC realm=default"));
BasicAuthCache authCache = new BasicAuthCache();
authCache.put(proxy, proxyAuth);

CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
        new AuthScope(proxy),
        new UsernamePasswordCredentials("username", "password"));

HttpClientContext context = HttpClientContext.create();
context.setAuthCache(authCache);
context.setCredentialsProvider(credsProvider);

CloseableHttpClient httpclient = HttpClients.createDefault();
try {
    CloseableHttpResponse response = httpclient.execute(new HttpGet("/stuff"), context);
    try {
        // ...
    } finally {
        response.close();
    }
} finally {
    httpclient.close();
}
1 楼 学渣村的好村长 2015-10-19  
您好,您知道这么设置以后,如何设置代理服务器的用户名和密码么

相关推荐

    httpclient4.3 设置代理

    javase http通讯技术 apache httpclient4.3 设置代理详解

    httpclient4.3 封装工具类

    这个封裝工具类是对HttpClient 4.3进行的二次开发,旨在简化HTTP请求的处理,解决一些常见的问题,如代理设置、多线程并发请求、SSL安全连接以及GET和POST请求的通用实现。 1. **代理问题**:在进行网络请求时,...

    httpClient4.3文档 PDF

    HttpClient 4.3版本对异步操作进行了优化,引入了AsyncClient,允许开发者在处理HTTP请求时利用多线程,提高应用的并发性能。 使用HttpClient时,首先需要导入对应的依赖库。在Maven项目中,可以在pom.xml文件中...

    httpclient httpclient-4.3

    1. **多协议支持**:HttpClient 4.3 支持 HTTP/1.1 和 HTTP/2 协议,能够处理各种复杂的网络环境和代理设置。 2. **异步和同步API**:HttpClient 提供了同步和异步两种 API,满足不同场景的需求,异步 API 可以显著...

    httpclient 4.5 api文档

    ##### 2.8 HttpClient代理配置 - **定义**:配置代理服务器以转发HTTP请求。 - **实现方法**:设置HttpHost对象作为代理配置。 #### 三、HTTP状态管理 ##### 3.1 HTTP Cookie - **定义**:用于在客户端和服务器...

    HttpClient-4.3.6

    - **可扩展性**:HttpClient的设计允许用户根据需求自定义请求执行器、响应处理器、连接工厂等,以满足特定的业务场景。 使用HttpClient时,开发者需要注意以下几点: - 配置合适的连接池大小,以平衡资源利用和...

    HttpClient4.5.1手册

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

    HttpClient 4.4英文版文档

    HttpClient 4.4是Apache HTTP Components项目的一部分,是一个用于发送HTTP请求并处理HTTP响应的Java客户端。文档涵盖了此版本中实现的功能和API的使用细节。 ### 1. HttpClient基础 #### 1.1 请求执行 - **HTTP...

    HttpClient 4.0中文教程

    HttpClient允许开发者创建并发送这些请求,支持自定义请求头、设置请求参数等功能。 - **HTTP响应**: HTTP响应包含了一个状态码(如200表示成功)、响应头以及可能的响应体。了解如何解析和处理这些响应是至关重要的...

    httpclient-4.3.1相关jar包,整理下载

    其核心组件httpclient-4.3.1.jar提供了主要的HTTP客户端接口和实现,包含了请求执行、URL处理、认证和代理设置等功能。 httpclient-cache-4.3.1.jar是HttpClient的缓存模块,实现了HTTP/1.1缓存规范,可以有效地...

    httpclient-4.3.1.jar,httpcore-4.3.2.jar,httpmime-4.3.5.jar

    在开发过程中,可能需要配置HttpClient以适应不同的网络环境,例如设置超时、启用或禁用SSL/TLS、处理代理服务器等。此外,连接管理策略也很重要,以避免过多的开放连接导致资源浪费或被服务器拒绝。 总的来说,...

    httpClient使用指南最新版

    - 如果网络环境需要使用代理服务器,则需要配置HttpClient以使用正确的代理设置。 #### 三、HTTP状态管理 **3.1 HTTP Cookies** - Cookies用于保存用户的登录状态或其他信息。 - **3.2 Cookies规范**: 规定了...

    httpClient4.5.1教程

    - 2.8 HttpClient代理配置:讲解如何配置 HttpClient 使用代理服务器。 3.HTTP状态管理 - 3.1 HTTP Cookie:如何在客户端处理HTTP Cookie。 - 3.2 Cookie规范:对Cookie行为的各种规范进行讲解。 - 3.3 选择Cookie...

    httpclient

    配置代理服务器可以让HttpClient通过代理服务器发送请求,这对于企业环境特别有用。 #### 三、HTTP状态管理 ##### 3.1 HTTP Cookie **3.1.1 Cookie版本** Cookie有多种版本,包括标准Cookie和Set-Cookie2,它们在...

    httpClient实用指南

    - 介绍了如何配置HttpClient以使用代理服务器。 ##### 2.8 HTTP连接管理器 - **连接操作员**:解释了连接操作员的作用和工作原理。 - **管理连接和连接管理器**:探讨了如何管理和使用连接池。 - **简单连接管理器...

    httpclient4中文文档

    - HTTPClient提供了丰富的API来执行HTTP请求,并允许开发者定制各种执行环境,如设置超时时间、认证信息等。 **1.3 异常处理** - **HTTP运输安全**: 涉及到HTTPS连接的安全问题,如证书验证、加密算法等。 - **幂...

    httpclient tutorial

    2.8 HttpClient代理配置:如何设置HttpClient通过代理服务器与目标服务器通信。 3. HTTP状态管理 3.1 HTTP cookies:介绍如何使用HttpClient处理HTTP cookies。 3.2 Cookie规范:了解各种Cookie规范和浏览器的...

    httpclient-tutorial-simplified-chinese

    **2.7 HttpClient 代理配置**:允许客户端通过代理服务器进行通信。 **2.8 HTTP 连接管理器** - **连接操作器**:负责打开和关闭连接。 - **管理连接和连接管理器**:连接管理器管理着连接池。 - **简单连接管理器...

Global site tag (gtag.js) - Google Analytics