HttpClient 是apache 组织下面的一个用于处理HTTP 请求和响应的开源工具。所用jar包为httpclient-4.3.6.jar、httpcore-4.3.3.jar、httpmime-4.3.6.jar、commons-codec-1.6.jar。
发送Post请求代码如下:
package com.zkn.newlearn.httpclient; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.List; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; 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.HttpClients; import org.apache.http.message.BasicNameValuePair; import com.google.common.collect.Lists; /** * * @author zkn 2016-06-05 * */ public class HttpClientTest01 { public static void main(String[] args) { //创建HttpClient对象 CloseableHttpClient closeHttpClient = HttpClients.createDefault(); CloseableHttpResponse httpResponse = null; //发送Post请求 HttpPost httpPost = new HttpPost("http://localhost:8080/MyWebxTest/getCityByProvinceEname.do"); //设置Post参数 List<NameValuePair> params = Lists.newArrayList(); params.add(new BasicNameValuePair("cityEname", "henan")); try { //转换参数并设置编码格式 httpPost.setEntity(new UrlEncodedFormEntity(params,Consts.UTF_8)); //执行Post请求 得到Response对象 httpResponse = closeHttpClient.execute(httpPost); //httpResponse.getStatusLine() 响应头信息 System.out.println(httpResponse.getStatusLine()); //返回对象 向上造型 HttpEntity httpEntity = httpResponse.getEntity(); if(httpEntity != null){ //响应输入流 InputStream is = httpEntity.getContent(); //转换为字符输入流 BufferedReader br = new BufferedReader(new InputStreamReader(is,Consts.UTF_8)); String line = null; while((line=br.readLine())!=null){ System.out.println(line); } //关闭输入流 is.close(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(httpResponse != null){ try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if(closeHttpClient != null){ try { closeHttpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
相关推荐
1. **基本用法**:如何创建HttpClient实例,发起GET和POST请求,设置请求头,携带参数等。 2. **连接管理**:理解ConnectionManager,如何设置连接池大小,超时时间,复用连接等。 3. **请求执行器**:使用...
### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...
4. **请求和响应的抽象**:HttpClient将HTTP请求和响应进行了清晰的抽象,方便开发者自定义请求头、参数和主体内容。 5. **智能重试和恢复策略**:当遇到网络问题时,HttpClient可以自动重试请求,且有多种策略供...
- **代码结构**:这个示例通常会展示如何初始化HttpClient实例,设置请求参数,发送请求,处理响应等内容。可能还会涉及异常处理和连接池配置。 - **版本差异**:示例可能会对比4.x版本和4.x以下版本在代码实现上...
// 执行POST请求 // 返回响应对象 } } ``` 通过以上介绍,我们可以看出HttpClient是一个强大的工具,可以帮助开发者轻松地进行HTTP请求。无论是在测试API接口,还是在集成外部服务,HttpClient都是一个值得信赖...
- **POST请求与上传文件**:HttpClient可以方便地发送POST请求,包括上传文件或表单数据,通过`PostMethod`和`MultipartRequestEntity`等类实现。 总的来说,HttpClient3.1是一个强大且灵活的HTTP客户端工具,适用...
HttpClient 4.x系列是Apache基金会开发的一个开源项目,旨在提供一个高效的、高度可定制的HTTP客户端API。4.5.2版本在4.5.1的基础上修复了一些已知问题,增强了性能,并对API进行了微调,以更好地适应现代网络环境。...
3. `httpmime-4.x.x.jar`: 这个库扩展了HttpClient,支持在HTTP请求中处理MIME类型的数据,比如文件上传。 4. `httpclient-cache-4.x.x.jar`: 提供了HTTP缓存功能,可以提高重复请求的效率。 5. `json-lib-2.x.x.jar...
接下来,我们将分别讲解HttpClient如何实现GET和POST请求: 1. GET请求: 使用HttpGet类创建GET请求,指定目标URL。例如: ```java HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpClient...
3. **设置请求参数**:在HttpMethod对象上添加请求头、URL参数或者POST请求的实体内容。 4. **执行请求**:通过HttpClient的execute方法执行请求,并得到HttpResponse。 5. **处理响应**:从HttpResponse中获取...
4.x版本的HttpClient提供了一系列丰富的API,使得开发者能够更加灵活和高效地实现HTTP通信。本详解将覆盖HttpClient的多个方面,包括基础使用、连接管理、状态管理、认证机制以及高级主题。 首先,HttpClient的基础...
HttpClient 4.x版本是Apache基金会开发的一个开放源码库,广泛应用于Web服务的客户端实现,允许开发者发送HTTP请求并处理响应。在这个初学阶段的学习中,HttpClient4.jar包将成为你探索网络通信的关键。 首先,了解...
1. **C# 带参数POST请求**: 当需要向服务器发送带有数据的请求时,POST方法通常比GET更合适,因为它可以处理更大的数据量且数据不会显示在URL中。在C#中,我们可以使用HttpClient类来实现POST请求。以下是一个基本...
// 普通参数POST请求 sendFormPostRequest(httpClient); httpClient.close(); } private static void sendJsonPostRequest(CloseableHttpClient httpClient) throws IOException { // 创建HttpPost实例 ...
在这个例子中,我们使用了`NameValuePair`来构造POST请求的参数,然后设置到请求实体中。 在实际应用中,我们可能还需要处理其他HTTP方法(如PUT、DELETE等),以及自定义头部信息、身份验证、超时设置等。...
4. 执行请求:使用HttpClient的`execute`方法发送请求,并获取响应: ```java CloseableHttpResponse response = httpClient.execute(httpGet); ``` 5. 处理响应:解析响应状态和内容,例如: ```java ...
1. 基于Java的HTTP客户端接口:HttpClient 4.2.2提供了一套全面的API,使得开发者可以通过Java代码轻松发送HTTP请求,接收响应,包括GET、POST、PUT、DELETE等各种HTTP方法。 2. 连接管理:HttpClient 4.2.2支持连接...
最后,使用HttpClient的execute方法发送请求,并获取HttpResponse对象以处理响应。 在实际应用中,HTTPClient库的高级特性包括: 1. **多路复用**:HTTP/2协议支持多路复用,允许多个HTTP请求共享一个TCP连接,...