`
老实人
  • 浏览: 43407 次
社区版块
存档分类
最新评论

Apache Common HttpClient使用之七种武器

    博客分类:
  • java
阅读更多
1.拳头之Get/Post
拳头是最基本的一重武器,也是最重要的,好比练武之人必须先扎稳马步。

java 代码
 
  1. HttpClient  httpclient = new  HttpClient (); //创建一个客户端,类似打开一个浏览器   
  2. GetMethod getMethod=new  GetMethod( "http://www.blablabla.com" );//创建一个get方法,类似在浏览器地址栏中输入一个地址  
  3. int  statusCode=httpclient .executeMethod(getMethod); //回车——出拳!   
  4. System.out.println("response="  + getMethod.getResponseBodyAsString()); //察看拳头命中情况,可以获得的东西还有很多,比如head, cookies等等   
  5. getMethod.releaseConnection();//释放,记得收拳哦   


2.孔雀翎之支持https

如何支持https?
java 代码
 
  1. static {  
  2.     Protocol easyhttps = new  Protocol( "https" new  EasySSLProtocolSocketFactory(),  443 );  
  3.     Protocol.registerProtocol("https" , easyhttps);  
  4. }  

在执行具体的http method之前,暗中将https协议注册一把,如孔雀翎暗藏玄机,毙敌于无形。记住,官方的binary发行版本没有ssl的contribute包,方法一是下载源代码版本来打造你的孔雀翎。

3.多情环之cookies
常道人老多情,其实是记忆太多,所以情之所至,正如cookies甜心,无论你走到那,总把你牵挂:
java 代码
 
  1. HttpClient  httpclient = new  HttpClient ();  
  2. httpclient .getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie 协议   
  3. HttpState initialState = new  HttpState();  
  4. Cookie  cookie =new  Cookie ();  
  5. cookie .setDomain("www.balblabla.com" );  
  6. cookie .setPath("/" );  
  7. cookie .setName("多情环" );  
  8. cookie .setValue("多情即无情" );  
  9. initialState.addCookie(cookie );  
  10. httpclient .setState(initialState);  
  11. ...  


4.离别钩之解构cookies

多情环的反面即离别钩,钩出,敌之身体某个部件即要与身体别离,端的是无情:
java 代码
 
  1. ... //执行了某些get/post方法后   
  2. Cookie [] cookies = httpclient .getState().getCookies();  
  3. System.out.println("Present cookies: " );  
  4. for  ( int  i =  0 ; i < cookies.length; i++) { //循环结构零部件   
  5.     System.out.println(" - "  + cookies[i].toExternalForm());  
  6.     System.out.println(" - domain="  + cookies[i].getDomain());  
  7.     System.out.println(" - path="  + cookies[i].getPath());  
  8.     ...            
  9. }  


5.霸王抢之post参数
枪,长兵器之王,诸多名将均使一杆或金或银命名的名枪,比如岳飞。post方法在提交参数对时,犹如灵蛇出洞:
java 代码
 
  1. PostMethod postMethod =  new  PostMethod( "http://www.saybot.com/postme" );  
  2. NameValuePair[] postData = new  NameValuePair[ 2 ];  
  3. postData[0 ] =  new  NameValuePair( "武器" "枪" );  
  4. postData[1 ] =  new  NameValuePair( "什么枪" "神枪" );  
  5. postMethod.addParameters(postData);  
  6. ...//出枪吧   


6.七星碧玉刀之支持代理(proxy)

代理,非常重要,尤其在局域网横行的年头,没有代理,你在公司上不了QQ,没有代理,google不了网页快照,代理之威,可比七星碧玉刀,无刀,在局域网和开发当中,一切白搭:
java 代码
 
  1. HttpClient  httpclient = new  HttpClient ();  
  2. httpClient .getHostConfiguration().setProxy("192.168.0.1" 9527 );  
  3. httpClient .getParams().setAuthenticationPreemptive(true ); //重要!!!告诉httpclient ,使用抢先认证,否则你会收到“你没有资格”的恶果   
  4. /*  
  5.   这一步也至关重要,MyProxyCredentialsProvider实现了org.apache.commons.httpclient .auth.CredentialsProvider接口,  
  6.   返回代理的credential(username/password)*/   
  7. httpClient .getParams().setParameter(CredentialsProvider.PROVIDER, new  MyProxyCredentialsProvider());  
  8. httpClient .getState().setProxyCredentials(  
  9.     new  AuthScope( "192.168.0.1" ,  
  10.         AuthScope.ANY_PORT, //任意端口哦,可要小心   
  11.         AuthScope.ANY_REALM),//任意域哦,可要小心   
  12. new  UsernamePasswordCredentials( "username" , //proxy的用户名   
  13.                         "password" )); //proxy的密码   

...

7.长生剑之天下第一
httpclient 的官方文档:jakarta.apache.org/commons/httpclient /userguide.html
看Hilton网友写的小葵花宝典笔记:www.cnjm.net/tech/article1155.html
通读后,你会有种拔剑四顾心茫然的高手感觉。

七种武器,打完收工!

1.拳头之Get/Post
拳头是最基本的一重武器,也是最重要的,好比练武之人必须先扎稳马步。

java 代码


   1. HttpClient httpclient=new HttpClient();//创建一个客户端,类似打开一个浏览器 
   2. GetMethod getMethod=new GetMethod("http://www.blablabla.com");//创建一个get方法,类似在浏览器地址栏中输入一个地址 
   3. int statusCode=httpclient.executeMethod(getMethod);//回车——出拳! 
   4. System.out.println("response=" + getMethod.getResponseBodyAsString());//察看拳头命中情况,可以获得的东西还有很多,比如head, cookies等等 
   5. getMethod.releaseConnection();//释放,记得收拳哦 



2.孔雀翎之支持https

如何支持https?
java 代码


   1. static{ 
   2.     Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443); 
   3.     Protocol.registerProtocol("https", easyhttps); 
   4. } 


在执行具体的http method之前,暗中将https协议注册一把,如孔雀翎暗藏玄机,毙敌于无形。记住,官方的binary发行版本没有ssl的contribute包,方法一是下载源代码版本来打造你的孔雀翎。

3.多情环之cookies
常道人老多情,其实是记忆太多,所以情之所至,正如cookies甜心,无论你走到那,总把你牵挂:
java 代码


   1. HttpClient httpclient=new HttpClient(); 
   2. httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议 
   3. HttpState initialState = new HttpState(); 
   4. Cookie cookie=new Cookie(); 
   5. cookie.setDomain("www.balblabla.com"); 
   6. cookie.setPath("/"); 
   7. cookie.setName("多情环"); 
   8. cookie.setValue("多情即无情"); 
   9. initialState.addCookie(cookie); 
  10. httpclient.setState(initialState); 
  11. ... 



4.离别钩之解构cookies
多情环的反面即离别钩,钩出,敌之身体某个部件即要与身体别离,端的是无情:
java 代码


   1. ...//执行了某些get/post方法后 
   2. Cookie[] cookies = httpclient.getState().getCookies(); 
   3. System.out.println("Present cookies: "); 
   4. for (int i = 0; i < cookies.length; i++) {//循环结构零部件 
   5.     System.out.println(" - " + cookies[i].toExternalForm()); 
   6.     System.out.println(" - domain=" + cookies[i].getDomain()); 
   7.     System.out.println(" - path=" + cookies[i].getPath()); 
   8.     ...           
   9. } 



5.霸王抢之post参数
枪,长兵器之王,诸多名将均使一杆或金或银命名的名枪,比如岳飞。post方法在提交参数对时,犹如灵蛇出洞:
java 代码


   1. PostMethod postMethod = new PostMethod("http://www.saybot.com/postme"); 
   2. NameValuePair[] postData = new NameValuePair[2]; 
   3. postData[0] = new NameValuePair("武器", "枪"); 
   4. postData[1] = new NameValuePair("什么枪", "神枪"); 
   5. postMethod.addParameters(postData); 
   6. ...//出枪吧 



6.七星碧玉刀之支持代理(proxy)
代理,非常重要,尤其在局域网横行的年头,没有代理,你在公司上不了QQ,没有代理,google不了网页快照,代理之威,可比七星碧玉刀,无刀,在局域网和开发当中,一切白搭:
java 代码


   1. HttpClient httpclient=new HttpClient(); 
   2. httpClient.getHostConfiguration().setProxy("192.168.0.1", 9527); 
   3. httpClient.getParams().setAuthenticationPreemptive(true);//重要!!!告诉httpclient,使用抢先认证,否则你会收到“你没有资格”的恶果 
   4. /*
   5.   这一步也至关重要,MyProxyCredentialsProvider实现了org.apache.commons.httpclient.auth.CredentialsProvider接口,
   6.   返回代理的credential(username/password)*/ 
   7. httpClient.getParams().setParameter(CredentialsProvider.PROVIDER, new MyProxyCredentialsProvider()); 
   8. httpClient.getState().setProxyCredentials( 
   9.     new AuthScope("192.168.0.1", 
  10.         AuthScope.ANY_PORT, //任意端口哦,可要小心 
  11.         AuthScope.ANY_REALM),//任意域哦,可要小心 
  12. new UsernamePasswordCredentials("username",//proxy的用户名 
  13.                         "password"));//proxy的密码 


...

7.长生剑之天下第一
看httpclient的官方文档:jakarta.apache.org/commons/httpclient/userguide.html
看Hilton网友写的小葵花宝典笔记:www.cnjm.net/tech/article1155.html
通读后,你会有种拔剑四顾心茫然的高手感觉。

七种武器,打完收工!

 

分享到:
评论

相关推荐

    apache commonshttpclient源码

    真正的 org.apache.commons.httpclient.source 源码

    HttpClient API CHM

    HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java ...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,

    Commons-HTTPClient组件介绍与使用

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。

    httpclient使用帮助类

    httpclient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,本文档提供使用httpclient的使用方法

    HttpClient使用示例教程

    HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 适用人群:JavaWeb开发者 使用场景:在Java后端程序中,模拟浏览器端进行Web请求。 其它:...

    httpclient4.5.5.chm

    新出炉的httpclient4.5.5.chm文档,放心下载,绝对不是挂羊头卖狗肉。 org.apache.http.auth Client HTTP authentication APIs. org.apache.http.auth.params Deprecated. org.apache....

    httpclient相关的jar包

    HTTP 协议可能是现在 Internet 上...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.2 (GA)

    httpclient4.2.1

    HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java ...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。

    HttpClient

    HTTP 协议可能是现在 Internet 上使用得最多、...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,更多使用 HttpClient 的应用可以参见...

    httpclient

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包

    Apache Commons官网下的jar包

    Apache Commons官网下的jar包 Apache Commons官网下的jar包

    httpclient-4.5所需jar包

    HTTP 协议可能是现在 Internet 上使用...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.5 .6

    HttpClient相关包

    import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org....

    httpclient-4.5所需所有jar包

    HTTP 协议可能是现在 Internet 上使用得...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.5

    httpclient_4.5.3.jar_httpclient_4.5.3.jar_

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持...HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。

    httpclient需要的jar包,合订版(httclient.jar,commons-codec,commons-logging)

    HttpClient 用到了 Apache Jakarta common 下的子项目 logging,你可以从这个地址http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi下载到 common logging,从下载后的压缩包中取出 commons-...

    HttpClient 4.0.3 Api 帮助文档 CHM格式

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际...

    commons-httpclient-3.1.jar

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持...HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。

    httpclient 全部JAR包下载

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP...HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient

Global site tag (gtag.js) - Google Analytics