HttpClient简单使用
准备
Apache官网下载 HttpClient , 下不了的点击这里,下载完后解压取lib文件夹中jar包导入到项目中
在进行本例之前需要了解三个类
HttpClient 代表Http客户端 里面定义了很多http 请求执行行为
HttpEntity 消息载体,发送或者接收消息的载体,可以通过客户端请求或者服务器响应获取实例
HttpConnection 代表http连接
本次实例代码
public class HttpCLientDemo
{
// HttpClient 代表Http客户端
// HttpEntity 消息载体,发送或者接收消息的载体,可以通过客户端请求或者服务器响应获取实例
// HttpConnection 代表http连接
/**
* @param args
*/
public static void main(String[] args)
{
// 创建默认的客户端实例
HttpClient httpCLient = new DefaultHttpClient();
// 创建get请求实例
HttpGet httpget = new HttpGet("http://www.baidu.com");
System.out.println("executing request "+httpget.getURI());
try
{
// 客户端执行get请求 返回响应实体
HttpResponse response = httpCLient.execute(httpget);
// 服务器响应状态行
System.out.println(response.getStatusLine());
Header[] heads = response.getAllHeaders();
// 打印所有响应头
for(Header h:heads){
System.out.println(h.getName()+":"+h.getValue());
}
// 获取响应消息实体
HttpEntity entity = response.getEntity();
System.out.println("------------------------------------");
if(entity != null){
//响应内容
System.out.println(EntityUtils.toString(entity));
System.out.println("----------------------------------------");
// 响应内容长度
System.out.println("响应内容长度:"+entity.getContentLength());
}
} catch (ClientProtocolException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}finally{
httpCLient.getConnectionManager().shutdown();
}
}
}
本次运行结果
总结一下
使用之前导入相应的jar包,然后开始编码,先创建一个客户端,根据需求可以配置,接着实例一个请求(get post put。。。),
然后用客户端对某一个服务器执行请求操作,可以得到一个http响应,
这里响应 结构如下 消息状态行,消息头,消息实体
Response = Status-Line *(( general-header | response-header | entity-header ) CRLF) CRLF [ message-body ]
对应结构
消息状态行:
HTTP/1.1 200 OK
消息响应头:
Date:Tue, 08 Jan 2013 07:18:42 GMT
Server:BWS/1.0
Content-Length:9785
Content-Type:text/html;charset=gbk
Cache-Control:private
Expires:Tue, 08 Jan 2013 07:18:42 GMT
Set-Cookie:H_PS_PSSID=1757; path=/; domain=.baidu.com
Set-Cookie:BAIDUID=22B4BB1F8F8E808DB50B6513DBBCF6DF:FG=1; expires=Tue, 08-Jan-43 07:18:42 GMT; path=/; domain=.baidu.com
P3P:CP=" OTI DSP COR IVA OUR IND COM "
Connection:Keep-Alive
本次对HttpClient的简单使用到此为止