`

HttpClient4.X发送带参数的Post请求

 
阅读更多

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 楼 Fomalhaut 2017-04-05  

相关推荐

    HTTPClient 4.3.X

    1. **基本用法**:如何创建HttpClient实例,发起GET和POST请求,设置请求头,携带参数等。 2. **连接管理**:理解ConnectionManager,如何设置连接池大小,超时时间,复用连接等。 3. **请求执行器**:使用...

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

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

    httpclient4.3.x及其依赖jar包

    4. **请求和响应的抽象**:HttpClient将HTTP请求和响应进行了清晰的抽象,方便开发者自定义请求头、参数和主体内容。 5. **智能重试和恢复策略**:当遇到网络问题时,HttpClient可以自动重试请求,且有多种策略供...

    httpclientDemo(4.x与4以下的版本)例子

    - **代码结构**:这个示例通常会展示如何初始化HttpClient实例,设置请求参数,发送请求,处理响应等内容。可能还会涉及异常处理和连接池配置。 - **版本差异**:示例可能会对比4.x版本和4.x以下版本在代码实现上...

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

    // 执行POST请求 // 返回响应对象 } } ``` 通过以上介绍,我们可以看出HttpClient是一个强大的工具,可以帮助开发者轻松地进行HTTP请求。无论是在测试API接口,还是在集成外部服务,HttpClient都是一个值得信赖...

    HttpClient3.1.jar

    - **POST请求与上传文件**:HttpClient可以方便地发送POST请求,包括上传文件或表单数据,通过`PostMethod`和`MultipartRequestEntity`等类实现。 总的来说,HttpClient3.1是一个强大且灵活的HTTP客户端工具,适用...

    httpclient-4.5.2.jar.zip

    HttpClient 4.x系列是Apache基金会开发的一个开源项目,旨在提供一个高效的、高度可定制的HTTP客户端API。4.5.2版本在4.5.1的基础上修复了一些已知问题,增强了性能,并对API进行了微调,以更好地适应现代网络环境。...

    HttpClient所需jar包(全) httpClient.4.13jar

    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实现POST GET和文件下载

    接下来,我们将分别讲解HttpClient如何实现GET和POST请求: 1. GET请求: 使用HttpGet类创建GET请求,指定目标URL。例如: ```java HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpClient...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    3. **设置请求参数**:在HttpMethod对象上添加请求头、URL参数或者POST请求的实体内容。 4. **执行请求**:通过HttpClient的execute方法执行请求,并得到HttpResponse。 5. **处理响应**:从HttpResponse中获取...

    Apache-HttpClient4.x详解 高清中文 pdf

    4.x版本的HttpClient提供了一系列丰富的API,使得开发者能够更加灵活和高效地实现HTTP通信。本详解将覆盖HttpClient的多个方面,包括基础使用、连接管理、状态管理、认证机制以及高级主题。 首先,HttpClient的基础...

    初学java,未有小成 --- httpClient4.jar包学习

    HttpClient 4.x版本是Apache基金会开发的一个开放源码库,广泛应用于Web服务的客户端实现,允许开发者发送HTTP请求并处理响应。在这个初学阶段的学习中,HttpClient4.jar包将成为你探索网络通信的关键。 首先,了解...

    C#Post带参数请求+WebService接口.zip

    1. **C# 带参数POST请求**: 当需要向服务器发送带有数据的请求时,POST方法通常比GET更合适,因为它可以处理更大的数据量且数据不会显示在URL中。在C#中,我们可以使用HttpClient类来实现POST请求。以下是一个基本...

    HttpClient发送json、普通参数类型的Post请求(csdn)————程序.pdf

    // 普通参数POST请求 sendFormPostRequest(httpClient); httpClient.close(); } private static void sendJsonPostRequest(CloseableHttpClient httpClient) throws IOException { // 创建HttpPost实例 ...

    webservice调用实例,通过HttpClient调用

    在这个例子中,我们使用了`NameValuePair`来构造POST请求的参数,然后设置到请求实体中。 在实际应用中,我们可能还需要处理其他HTTP方法(如PUT、DELETE等),以及自定义头部信息、身份验证、超时设置等。...

    httpclient-4.5.2.jar安卓网络请求

    4. 执行请求:使用HttpClient的`execute`方法发送请求,并获取响应: ```java CloseableHttpResponse response = httpClient.execute(httpGet); ``` 5. 处理响应:解析响应状态和内容,例如: ```java ...

    httpclient4.2.2.zip

    1. 基于Java的HTTP客户端接口:HttpClient 4.2.2提供了一套全面的API,使得开发者可以通过Java代码轻松发送HTTP请求,接收响应,包括GET、POST、PUT、DELETE等各种HTTP方法。 2. 连接管理:HttpClient 4.2.2支持连接...

    httpclient.jar4.4及4.5版本和httpcore.jar和commons-logging.jar.rar

    最后,使用HttpClient的execute方法发送请求,并获取HttpResponse对象以处理响应。 在实际应用中,HTTPClient库的高级特性包括: 1. **多路复用**:HTTP/2协议支持多路复用,允许多个HTTP请求共享一个TCP连接,...

Global site tag (gtag.js) - Google Analytics