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包中已经提 ...
随机推荐
- python 的print 用法
print(x,y) 等价于 import sys sys.stdout.write(str(x) + ' ' +str(y) + '\n') 从语法上讲,调用python3.0 的print 函数有 ...
- 关于JavaScript中prototype机制的理解
最近几天一直在研究JavaScript中原型的机制,从开始的似懂非懂,到今天终于有所领悟.不敢说彻底理解,但是起码算知道怎么回事了. 为什么一开始似懂非懂 开始了解一遍原型机制后,感觉知其然但不知其所 ...
- DLL中导出ANSI和UNICODE函数
模仿window中的DLL导出ANSI和UNICODE版本的函数,使用UNICODE宏来控制使用哪个版本: 在函数实际的执行代码UNICODE版本中,在ANSI函数的版本中只做参数的转换,及ANSI字 ...
- SQLSERVER2008 R2的端口设置
通过存储过程查看 我们首先打开sqlserver连接sqlserver2008的数据库实例,然后执行如下存储过程: --查询端口号 exec sys.sp_readerrorlog 0, 1, 'li ...
- 51Nod 1376 最长递增子序列的数量 —— LIS、线段树
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1376 1376 最长递增子序列的数量 基准时间限制:1 秒 空 ...
- 谷歌新操作系统fuchsia
开源地址: https://github.com/fuchsia-mirror
- HTML font: 12px/1.5 Arial; 是什么意思
意思是: 字体12像素 行高 1.5em 字体 Arial 可以参考下面资料: 我们常用的font属性有下面这六种: font-style设定斜体 如:font-style: italic; font ...
- 机器学习: Logistic Regression--python
今天介绍 logistic regression,虽然里面有 regression 这个词,但是这其实是一种分类的方法,这个分类方法输出的也是 0-1 之间的一个数,可以看成是一种概率输出,这个分类器 ...
- Django:locals()小技巧
locals()返回一个包含当前作用域里面的所有变量和它们的值的字典. 所以可以把views改写为 def current_datetime(request): current_date = ...
- MySQL-计算7月重新激活客户第二种方法_20161022
上周日休假去广西玩了一周,回来继续. (一)上次用的是取当月首单日期,往前推30天 代码比较繁琐 这次方法是借助变量 错行进行判断 一个用户上次最后一次下单时间和下次下单时间的时间差 也就是形成一个相 ...