最近需要使用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(); } } }
相关推荐
javase http通讯技术 apache httpclient4.3 设置代理详解
这个封裝工具类是对HttpClient 4.3进行的二次开发,旨在简化HTTP请求的处理,解决一些常见的问题,如代理设置、多线程并发请求、SSL安全连接以及GET和POST请求的通用实现。 1. **代理问题**:在进行网络请求时,...
HttpClient 4.3版本对异步操作进行了优化,引入了AsyncClient,允许开发者在处理HTTP请求时利用多线程,提高应用的并发性能。 使用HttpClient时,首先需要导入对应的依赖库。在Maven项目中,可以在pom.xml文件中...
1. **多协议支持**:HttpClient 4.3 支持 HTTP/1.1 和 HTTP/2 协议,能够处理各种复杂的网络环境和代理设置。 2. **异步和同步API**:HttpClient 提供了同步和异步两种 API,满足不同场景的需求,异步 API 可以显著...
##### 2.8 HttpClient代理配置 - **定义**:配置代理服务器以转发HTTP请求。 - **实现方法**:设置HttpHost对象作为代理配置。 #### 三、HTTP状态管理 ##### 3.1 HTTP Cookie - **定义**:用于在客户端和服务器...
- **可扩展性**:HttpClient的设计允许用户根据需求自定义请求执行器、响应处理器、连接工厂等,以满足特定的业务场景。 使用HttpClient时,开发者需要注意以下几点: - 配置合适的连接池大小,以平衡资源利用和...
**2.8 HttpClient 代理配置:** HttpClient支持通过配置代理服务器来转发请求,这对于处于防火墙后的客户端特别有用。 #### 三、HTTP状态管理 **3.1 HTTP Cookies:** Cookie是服务器存储在客户端的小型文本文件,...
HttpClient 4.4是Apache HTTP Components项目的一部分,是一个用于发送HTTP请求并处理HTTP响应的Java客户端。文档涵盖了此版本中实现的功能和API的使用细节。 ### 1. HttpClient基础 #### 1.1 请求执行 - **HTTP...
HttpClient允许开发者创建并发送这些请求,支持自定义请求头、设置请求参数等功能。 - **HTTP响应**: HTTP响应包含了一个状态码(如200表示成功)、响应头以及可能的响应体。了解如何解析和处理这些响应是至关重要的...
其核心组件httpclient-4.3.1.jar提供了主要的HTTP客户端接口和实现,包含了请求执行、URL处理、认证和代理设置等功能。 httpclient-cache-4.3.1.jar是HttpClient的缓存模块,实现了HTTP/1.1缓存规范,可以有效地...
在开发过程中,可能需要配置HttpClient以适应不同的网络环境,例如设置超时、启用或禁用SSL/TLS、处理代理服务器等。此外,连接管理策略也很重要,以避免过多的开放连接导致资源浪费或被服务器拒绝。 总的来说,...
- 如果网络环境需要使用代理服务器,则需要配置HttpClient以使用正确的代理设置。 #### 三、HTTP状态管理 **3.1 HTTP Cookies** - Cookies用于保存用户的登录状态或其他信息。 - **3.2 Cookies规范**: 规定了...
- 2.8 HttpClient代理配置:讲解如何配置 HttpClient 使用代理服务器。 3.HTTP状态管理 - 3.1 HTTP Cookie:如何在客户端处理HTTP Cookie。 - 3.2 Cookie规范:对Cookie行为的各种规范进行讲解。 - 3.3 选择Cookie...
配置代理服务器可以让HttpClient通过代理服务器发送请求,这对于企业环境特别有用。 #### 三、HTTP状态管理 ##### 3.1 HTTP Cookie **3.1.1 Cookie版本** Cookie有多种版本,包括标准Cookie和Set-Cookie2,它们在...
- 介绍了如何配置HttpClient以使用代理服务器。 ##### 2.8 HTTP连接管理器 - **连接操作员**:解释了连接操作员的作用和工作原理。 - **管理连接和连接管理器**:探讨了如何管理和使用连接池。 - **简单连接管理器...
- HTTPClient提供了丰富的API来执行HTTP请求,并允许开发者定制各种执行环境,如设置超时时间、认证信息等。 **1.3 异常处理** - **HTTP运输安全**: 涉及到HTTPS连接的安全问题,如证书验证、加密算法等。 - **幂...
2.8 HttpClient代理配置:如何设置HttpClient通过代理服务器与目标服务器通信。 3. HTTP状态管理 3.1 HTTP cookies:介绍如何使用HttpClient处理HTTP cookies。 3.2 Cookie规范:了解各种Cookie规范和浏览器的...
**2.7 HttpClient 代理配置**:允许客户端通过代理服务器进行通信。 **2.8 HTTP 连接管理器** - **连接操作器**:负责打开和关闭连接。 - **管理连接和连接管理器**:连接管理器管理着连接池。 - **简单连接管理器...