HttpClient是一款用Java写的非常好用的基于Http协议的客户端编程工具包。具体举例来讲,用它可以模拟form表单提交数据动作,可以模拟访问网页动作及得到网页源码内容等等,这两点或许是我们在工作中最常用到的。
这里也主要是以介绍模拟form表单提交数据来介绍一下HttpClient,准确地讲主要是4.x版本,因为我发现在日常中,HttpClient的使用都还是使用3.x的版本,而现在HttpClient的官网上,都已经是最新版本4.1.3了,3.x版本在官网不见丝毫踪影,进入到下载页面也见不着3.x版本的下载。
HttpClient对于使用者而言,一个非常大的好处就是它的例子非常丰富,几乎每个功能都有对应的例子代码,这里讲的模拟form表单提交数据也是来源于HttpClient自带的例子。
一、Get提交方式
01
|
DefaultHttpClient
httpclient = new DefaultHttpClient();
|
05
|
HttpGet( "http://www.xxx.com/x.jsp?username=zhangsan&age=20" );
|
06
|
HttpResponse
response = httpclient.execute(httpget);
|
07
|
HttpEntity
entity = response.getEntity();
|
08
|
System.out.println( "Login
form get: " +
response.getStatusLine());
|
10
|
EntityUtils.consume(entity);
|
15
|
httpclient.getConnectionManager().shutdown();
|
二、Form表单Post提交方式
01
|
DefaultHttpClient
httpclient = new DefaultHttpClient();
|
03
|
HttpPost
httpost = new HttpPost( "http://www.xxx.com/x.jsp?" );
|
04
|
List
<NameValuePair> nvps = new ArrayList
<NameValuePair>();
|
06
|
nvps.add( new BasicNameValuePair( "age" , "20" ));
|
07
|
nvps.add( new BasicNameValuePair( "username" , "张三" ));
|
09
|
httpost.setEntity( new UrlEncodedFormEntity(nvps,
HTTP.UTF_8));
|
10
|
HttpResponse
response = httpclient.execute(httpost);
|
11
|
HttpEntity
entity = response.getEntity();
|
12
|
System.out.println( "Login
form get: " +
response.getStatusLine());
|
13
|
EntityUtils.consume(entity);
|
18
|
httpclient.getConnectionManager().shutdown();
|
在提交到的x.jsp中,我们还是像平常获取一个form表单数据那样处理就行了:
String username = request.getParameter("username");
HttpClient官方网址:http://hc.apache.org/
关于HttpClient的例子页面,见:
http://hc.apache.org/httpcomponents-client-ga/examples.html
或者在下载后的目录:
httpcomponents-client-4.1.3_src\httpclient\src\examples 。
目前HttpClient分两部分,一部分是HttpClient,另一部分是HttpCore,两者都要下载下来,上面的例子见:
httpcomponents-client-4.1.3_src\httpclient\src\examples\org\apache\http\examples\client\ClientFormLogin.java
分享到:
相关推荐
利用httpclient-4.3.1.jar、httpcore-4.3.jar包,很简单的用java实现httpget和httppost请求。
http请求工具类HttpClientUtil,get,post请求(csdn)————程序
HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件
httpclient的用法,发送get请求和post请求,设置header
HttpClient.php类文件,用于模拟get或post请求,源码中基本使用例子
HttpClient实现POST GET和文件下载 HttpClient实现POST GET和文件下载
一个简单的易学的 基于HttpClient 4.3发送psot及get请求,返回数据,适合初学者,适合初学者
HttpClient的简单使用,get、post、上传、下载。包含服务端和客户端代码
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
6.commons-HttpClient.jar包:用于http get/post的连接,比httpurl操作方便。 7.commons-FileUpload.jar包:支持文件上传。 8.commons-Codec.jar包:处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等. 9....
Delphi两种方法演示HTTP请求:GET/POST方法使用演示,程序将演示使用这两种方法建立会话、建立一个http请求句柄、发送一个指定请求到httpserver、接收header信息和一个http请求、指向一个接收请求信息的缓冲区的指针...
php HttpClient类,可模拟get或post提交,文件名:HttpClient.class.php
采用 HttpClient GET、POST 方式 提交数据到服务器
使用 HttpClient,调用http接口, 使用HttpClient JAVA发送http get/post请求,
HttpClient(用CloseableHttpClient发送get/post请求)
http远程请求接口的工具类HttpClientUtil.java,其中包含get,post,put,delete方式进行http远程请求。
linux c http/https post GET 支持HTTPS
httpclient工具类包含get,post,put,delete请求
httpclient-4.1.1.jar,httpclient,http get post put