org apache commons httpclient HttpClient的使用

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站 HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.5 (GA) (2015-09-11)
需要使用的jar包

使用步骤,思路
 1, 创建Http客户端对象
 2, 设置请求的url,连接的地址
 3, 设置请求的方式(Get/Post),请求内容的类型,接收内容的类型,字符编码
 4, 设置请求参数(请求内容)
 5, 按请求的方式执行请求,返回Http状态码
 6, 获得响应内容
 7, 释放连接

package com.httpclient1; import java.util.HashMap;import java.util.Map; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.NameValuePair;import org.apache.commons.httpclient.URI;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.params.HttpMethodParams; import com.google.gson.Gson;  /** * 用commons-httpclient-3.1 框架, 模拟客户端请求 * @since 2016-4-11 * @version 1.0 */public class Client { 	public static void main(String[] args) {				String serviceUrl = "http://localhost:8080/MbtForSpring/test/demo/serviceOne.do";				Map<String, Object> parames = new HashMap<String, Object>();		Gson gson = new Gson();		String json = null;		try {			parames.put("AppKey", "132152");			parames.put("Ticket", "57077c8537"); 			json = gson.toJson(parames); 			System.out.println("json:" + json);						String str = doPost(serviceUrl, json);			System.out.println(str);		} catch (Exception e) {			e.printStackTrace();		}			}		/**	 * 	 * @param strUrl	 * @param postString	 * @return	 * String	 */	@SuppressWarnings("deprecation")	public static String doPost(String strUrl, String postString) {		String receive = null;				// 请求发布在本地 Tomcat上服务		PostMethod method = new PostMethod(strUrl);//		PostMethod method = new PostMethod();		try {			HttpClient client = new HttpClient();//			client.getHostConfiguration().setHost(new HttpHost());						//请求 网络上的服务, 用这种方式请求本地,返回一个Html页面//			client.getHostConfiguration().setHost(new URI(strUrl));						method.setRequestHeader("Content-type", "application/json; charset=UTF-8");			method.setRequestHeader("Accept", "application/json; charset=UTF-8");			// 设置为默认的重试策略			method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());						// 4, 设置请求参数(请求内容)/*			NameValuePair pair1 = new NameValuePair("key", "value");			NameValuePair pair2 = new NameValuePair("key", "value");			method.setRequestBody(new NameValuePair[]{pair1, pair2} );*/ 			method.setRequestBody(postString);			int rspCode = client.executeMethod(method);			//			System.out.println("rspCode:" + rspCode);			receive = method.getResponseBodyAsString();			System.out.println("receive:" + receive);			return receive;		} catch (Exception e) {			e.printStackTrace();		} finally {			method.releaseConnection();		}		return receive;	}}

点这里可以跳转到人工智能网站

发表评论