http://www.ibm.com/developerworks/cn/opensource/os-httpclient/
HttpClient 功能介绍
以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。
- 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
- 支持自动转向
- 支持 HTTPS 协议
- 支持代理服务器等
String url = "http://www.newsmth.net/bbslogin2.php";
PostMethod postMethod = new PostMethod(url);
// 填入各个表单域的值
NameValuePair[] data = { new NameValuePair("id", "youUserName"),
new NameValuePair("passwd", "yourPwd") };
// 将表单的值放入postMethod中
postMethod.setRequestBody(data);
// 执行postMethod
int statusCode = httpClient.executeMethod(postMethod);
// HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
// 301或者302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY ||
statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
// 从头中取出转向的地址
Header locationHeader = postMethod.getResponseHeader("location");
String location = null;
if (locationHeader != null) {
location = locationHeader.getValue();
System.out.println("The page was redirected to:" + location);
} else {
System.err.println("Location field value is null.");
}
return;
}
处理HTTPS协议
HttpClient
提供了对SSL的支持,在使用SSL之前必须安装JSSE。在Sun提供的1.4以后的版本中,JSSE已经集成到JDK中,如果你使用的是JDK1.4
以前的版本则必须安装JSSE。JSSE不同的厂家有不同的实现。下面介绍怎么使用HttpClient来打开Https连接。这里有两种方法可以打开
https连接,第一种就是得到服务器颁发的证书,然后导入到本地的keystore中;另外一种办法就是通过扩展HttpClient的类来实现自动接
受证书。
方法1,取得证书,并导入本地的keystore:
1. 用IE打开需要连接的https网址,会弹出如下对话框:
2 单击"View Certificate",在弹出的对话框中选择"Details",然后再单击"Copy to File",根据提供的向导生成待访问网页的证书文件
3向导第一步,欢迎界面,直接单击"Next",
4向导第二步,选择导出的文件格式,默认,单击"Next",
5向导第三步,输入导出的文件名,输入后,单击"Next",
6 向导第四步,单击"Finish",完成向导
用keytool工具把刚才导出的证书倒入本地keystore。Keytool命令在<java-home>\bin\下,打开命令行窗口,并到<java-home>\lib\security\目录下,运行下面的命令:
keytool -import -noprompt -keystore cacerts
-storepass changeit -alias yourEntry1 -file your.cer
方法2,扩展HttpClient类实现自动接受证书
因为这种方法自动接收所有证书,因此存在一定的安全问题,所以在使用这种方法前请仔细考虑您的系统的安全需求。具体的步骤如下:
- 提
供一个自定义的socket
factory(test.MySecureProtocolSocketFactory)。这个自定义的类必须实现接口
org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory,在实现接口
的类中调用自定义的X509TrustManager(test.MyX509TrustManager),这两个类可以在随本文带的附件中得到
- 创建一个org.apache.commons.httpclient.protocol.Protocol的实例,指定协议名称和默认的端口号
Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory (), 443);
|
- 注册刚才创建的https协议对象
Protocol.registerProtocol("https ", myhttps);
|
- 然后按照普通编程方式打开https的目标地址
分享到:
相关推荐
httpclient常用封装工具 doGet(String url, Map, String> param) doPost(String url, Map, String> param) doPostJson(String url, String json)
模拟登录 不提供用户名密码
java httpclient 所需要的包,都是最新版的 commons-logging-1.1.3.jar commons-codec-1.6.jar commons-httpclient-3.1.jar
java HttpClient 发送GET请求和带有表单参数的POST请求教程例子
commons-beanutils-1.8.0.jar commons-codec.jar commons-collections-3.2.jar 等12个jar包
用java实现httpclient请求的类
JavaHttpClient实例
java httpclient 抓取 数据 和jar 包
Eclipse下完整的java程序,包含HttpClient的全部jar包。通过java类文件,实现通过链接将文件下载本地
java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_...
Java Httpclient的一个小例子,只有客户端的代码,服务器端随便写一个servlet都行,我也是新学的,主要是自己下载的jar包然后自己整合的
NULL 博文链接:https://piranha.iteye.com/blog/2119924
java httpclient 第三方包
JAVA利用HttpClient进行HTTPS接口调用
(完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc
Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)
java的电商开发工具类,其中有HttpClient爬虫式工具类,基于Http以及Https都可以进行操作.
该工具类使用httpclient进行http or https请求,包括requestbody格式和form表单格式,另外含文件服务器中转上传方法,几乎支持所有常用接口调用,内含详细注释和说明文件,含jar包,及maven方式引用,拿过去直接用吧
java httpclient工具类好用
httpclient工具包,版本是java_httpclient-4.2.5.jar,java_httpcore-4.4.4.jar