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();
				}
			}
		}
	}
}
时间: 2024-09-24 02:23:28

HttpClient4.X发送带参数的POST请求的相关文章

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

HttpClient 是apache 组织下面的一个用于处理HTTP 请求和响应的开源工具.所用jar包为httpclient-4.3.6.jar.httpcore-4.3.3.jar.httpmime-4.3.6.jar.commons-codec-1.6.jar. 发送Get请求代码如下: package com.zkn.newlearn.httpclient; import java.io.BufferedReader; import java.io.IOException; import

spring-Spring4 MVC 发送带参数的get请求,返回404

问题描述 Spring4 MVC 发送带参数的get请求,返回404 我很奇怪的是,不带参数就能执行controller里的内容,带了参数就直接404了. GET https://localhost:8443/devCms/news/news?pageNo=1&_t=1418783433655 404 (Not Found) 解决方案 那要看你是不是有拦截器把拦截了 跳转到一个不存在的页面,所有就有404了. 解决方案二: 断点调试,查看是否进入controller.如果没进入可能是你的spri

用VBS实现的发送带Cookie的HTTP请求的代码_vbs

为了方便测试,先写一个回显Cookie的简单的PHP程序: 复制代码 代码如下: <?php foreach($_COOKIE as $key => $value) echo "$key => $value\r\n"; ?> 然后分别用ServerXMLHTTP和XMLHTTP测试: 复制代码 代码如下: Dim http Set http = CreateObject("Msxml2.XMLHTTP") http.open "GE

python使用httplib发送put请求可以带参数么?

问题描述 python使用httplib发送put请求可以带参数么? This creates an HTTP message with the content of BODY as the enclosed representation for the resource http://localhost:8080/foobar ... import httplib BODY = "***filecontents***" conn = httplib.HTTPConnection(&q

java 发送带Basic Auth认证的http post请求实例代码_java

构造http header private static final String URL = "url"; private static final String APP_KEY = "key"; private static final String SECRET_KEY = "secret"; /** * 构造Basic Auth认证头信息 * * @return */ private String getHeader() { String

python使用urllib2实现发送带cookie的请求

本文实例讲述了python使用urllib2实现发送带cookie的请求.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 import urllib2 opener = urllib2.build_opener() opener.addheaders.append(('Cookie','cookiename=cookievalue')) f = opener.open(<A href="http://example.com/">http://example.c

链接传参数-客服端(ios)发送一个带参数的超链接,服务器端(asp.net)获取不到参数

问题描述 客服端(ios)发送一个带参数的超链接,服务器端(asp.net)获取不到参数 客服端(ios)发送一个超链接过来,asp.net网页端通过获取里面的参数来判断跳转的页面,可是每次获取的参数都为空,可以肯定的是链接后面的确有参数. 把链接复制出来单独在IE上浏览,也是同样的结果没有获取到参数.在本地通过VS又可以获取参数. 请高手们指点指点............

angularjs-angularJS jsonp的请求带参数

问题描述 angularJS jsonp的请求带参数 myUrl = "http://localhost:8090/api/testcallback=JSON_CALLBACK"; $http.jsonp(myUrl).success( function(data){ alert(data); } ); 当请求的地址为:http://localhost:8090/project/login?name=aaa&password=123456,应该怎么改 ? 解决方案 myUrl

web service-ajax带参数调用webService时的发送数据问题

问题描述 ajax带参数调用webService时的发送数据问题 如图,ajax带参数调用webService时的发送数据时为什么是 var poststr = "name=" + $("text1").value;而不是 var poststr = $("text1").value 解决方案 ajax调用webservice问题jquery中通过ajax调用webservice传递数组参数的问题 解决方案二: 前面那个是拼装的参数,因为你后台是