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;
	}
}
原文:https://blog.csdn.net/sxchen_csdn/article/details/51144027
org.apache.commons.httpclient.HttpClient的使用(转)的更多相关文章
- org.apache.commons.httpclient
		
org.apache.commons.httpclient /** * post 方法 * @param url * @param params * @return */ public static ...
 - java apache commons HttpClient发送get和post请求的学习整理(转)
		
文章转自:http://blog.csdn.net/ambitiontan/archive/2006/01/06/572171.aspx HttpClient 是我最近想研究的东西,以前想过的一些应用 ...
 - org.apache.commons.httpclient工具类
		
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpcl ...
 - httpClient使用中报错org.apache.commons.httpclient.HttpMethodBase - Going to buffer response body of large or unknown size.
		
在使用HttpClient发送请求,使用httpMethod.getResponseBodyAsString();时当返回值过大时会报错: org.apache.commons.httpclient. ...
 - org.apache.commons.httpclient和org.apache.http.client区别(转)
		
官网说明: http://hc.apache.org/httpclient-3.x/ Commons HttpClient项目现已结束,不再开发.它已被其HttpClient和HttpCore模块中的 ...
 - org.apache.commons.httpclient工具类(封装的HttpUtil)
		
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java ...
 - 通过 Apache Commons HttpClient 发送 HTTPS 请求
		
1.通过 HTTPS 发送 POST 请求: 2.HTTPS 安全协议采用 TLSv1.2: 3. 使用代理(Proxy)进行 HTTPS 访问: 4.指定 Content-Type 为:applic ...
 - org.apache.http.client.HttpClient; HttpClient 4.3超时设置
		
可用的code import org.apache.commons.lang.StringUtils;import org.apache.http.HttpEntity;import org.apac ...
 - apache.http.client.HttpClient
		
前言 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java net包中已经提 ...
 
随机推荐
- ProgressBar+WebView实现自定义浏览器
			
当我们使用浏览器浏览网页时,总会看到下图页面的样子,上面是一个地址栏,地址栏下面显示加载进度,加载完成后进入页面内容,带颜色的进度条总是少不了的,那样子看起来也舒服,如何实现自定义手机浏览器功能呢? ...
 - mysql服务突然不能启动
			
mysql之前一直用的好好的,今天突然不能启动.前几天改过my.ini文件,在[mysqld]下添加了default-character-set=utf8.查看日志发现是添加的那句话的错误,删除.并且 ...
 - Winfrom和控制台中static修饰方法的问题
			
在编写winform程序时,当写完方法名后,按Shift+Alt+F10(vs自动生成方法框架)后生成的方法是实例方法,而当手动为该方法添加static修饰符后,程序仍能正常运行. 而在控制台中,写完 ...
 - Contiki Etimer 模块
			
一.Etimer概述 Etimer提供产生时间事件(timed event)的机制,当设定好的timer到期时,将会给设定etimer的process发送一个PROCESS_EVENT_TIMER 事 ...
 - JAVA-三大语句(选择语句、条件语句、循环语句)
			
跳出指定的for循环体,和goto很像 1 K:for(int i=0;i<3;i++){//给这个for循环体取一个名字为K 2 for(int j=0;j<3;j++){ 3 if(j ...
 - Apache-SimpleEmail 简单应用
			
比JavaMail使用方法要直接,jar包只需要在JavaMail的基础上添加commons-email-1.4.jar即可. 代码: // QQ邮箱发送邮件 SimpleEmail simpleEm ...
 - NO1:安装VMLinux虚拟机,安装配置Samba实现Linux与Windows文件共享
			
离开技术好些年,仅凭记忆开始学习.同时决定在Linux系统学习C语言. 一.下午安装了VM 8.0,安装RedHat Enterpris Server 6.4虚拟操作系统,都还比较顺利. 二.要实现L ...
 - android如何查看网卡名和ip
			
我们知道,在windows下查看ip地址用ipconfig,在Linux下查看ip地址用ifconfig.今天在使用android查看的时候ifconfig却不管用: 查找网上资料发现,原来默认ifc ...
 - ACM学习历程—ZOJ3878 Convert QWERTY to Dvorak(Hash && 模拟)
			
Description Edward, a poor copy typist, is a user of the Dvorak Layout. But now he has only a QWERTY ...
 - 【LeetCode】259 3Sum Smaller
			
题目: Given an array of n integers nums and a target, find the number of index triplets i, j, k with 0 ...