还是按照整体思想来分析HttpClient【 先整体框架后细节】!
这也是本人的学习方法!
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议;
从HttpClient的表述可以知道 HttpClient 是一个工具包!可以理解第三方类库!
很多人下载了第三方jar后,大部分估计不知道怎么使用它的,没有API Example ...无从下手!怎么办?请看下面解释:
关于对第三类库的学习建议去它对应的官方网站下载源码来学习。官方网站下载对应的源码里面包括你想要各种资料;如API Example ...etc
可以从其中的源码来学习它的用法;这是最直接的方法,也是最有效的方法。哈哈。。。不解释了,继续:
说了这么多那么HttpClient 到底是做什么用的呢?在什么场景下用呢? 以及如何使用呢?下面来依依分析它:
1.HttpCilent到底是做什么用的呢?转载网友的说法:
通过上面可以知道这个工具包到底是做什么用的了,至少有一个大概的思想了吧!哈哈!
2 HttpClient 如何使用?
直接代码:
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
/*
* HttpClinet Demo
* author lxd
* date 2013-08-10
*/
public class MainDeom {
/**
* @param args
* @throws IOException
* @throws ClientProtocolException
*/
public static void main(String[] args) throws ClientProtocolException, IOException {
//New HttpClient Object version4.x HttpClient is Interface ;
//Default use DefaultHttpClient Class implements HttpClient ;
HttpClient client = new DefaultHttpClient();
//New HttpGet
//HttpGet is Return Url information ;
HttpGet httpget = new HttpGet("http://lenovo:8080/CM/web/index.jsp");
//HttpClient is execute httpget return Response;
HttpResponse response = client.execute(httpget);
//Response.getAllHeaders() is Return Server Environments include : Server,date ...;
Header atrs [] = response.getAllHeaders();
System.out.println(atrs[1]);
//Response.getStatuLine is Return Execute State;
System.out.println(response.getStatusLine());
System.out.println(response.getHeaders("Set-Cookie"));
//Respnse.getEntity Return Content;
HttpEntity Entity = response.getEntity();
System.out.println(Entity.getClass());
//HttpEntity Return InputStream;
InputStream ip = Entity.getContent();
byte date[] = null;
try {
BufferedInputStream fs = new BufferedInputStream(ip);
date = new byte[1024];
if(fs.read() != -1){
fs.read(date);
}
ip.close();
fs.close();
} catch (Exception e) {
e.printStackTrace();
}
String content = new String(date,"utf-8");
System.out.println(content);
}
}