【转】 Apache Common HttpClient使用之七种武器

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


java 代码
 
HttpClient httpclient=new HttpClient();//创建一个客户端,类似打开一个浏览器  
GetMethod getMethod=new GetMethod("http://www.blablabla.com");//创建一个get方法,类似在浏览器地址栏中输入一个

地址  
int statusCode=httpclient.executeMethod(getMethod);//回车——出拳!  
System.out.println("response=" + getMethod.getResponseBodyAsString());//察看拳头命中情况,可以获得的东西还有很

多,比如head, cookies等等  
getMethod.releaseConnection();//释放,记得收拳哦  


2.孔雀翎之支持https

如何支持https?

java 代码
 
static{  
    Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);  
    Protocol.registerProtocol("https", easyhttps);  
 

在执行具体的http method之前,暗中将https协议注册一把,如孔雀翎暗藏玄机,毙敌于无形。记住,官方的binary发行版本

没有ssl的contribute包,方法一是下载源代码版本来打造你的孔雀翎。

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

java 代码
 
HttpClient httpclient=new HttpClient();  
httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议

 
HttpState initialState = new HttpState();  
Cookie cookie=new Cookie();  
cookie.setDomain("www.balblabla.com");  
cookie.setPath("/");  
cookie.setName("多情环");  
cookie.setValue("多情即无情");  
initialState.addCookie(cookie);  
httpclient.setState(initialState);  
...  


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

java 代码
 
...//执行了某些get/post方法后  
Cookie[] cookies = httpclient.getState().getCookies();  
System.out.println("Present cookies: ");  
for (int i = 0; i < cookies.length; i++) {//循环结构零部件  
    System.out.println(" - " + cookies[i].toExternalForm());  
    System.out.println(" - domain=" + cookies[i].getDomain());  
    System.out.println(" - path=" + cookies[i].getPath());  
    ...            
 


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

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


6.七星碧玉刀之支持代理(proxy)
代理,非常重要,尤其在局域网横行的年头,没有代理,你在公司上不了QQ,没有代理,google不了网页快照,代理之威,可

比七星碧玉刀,无刀,在局域网和开发当中,一切白搭:

java 代码
 
HttpClient httpclient=new HttpClient();  
httpClient.getHostConfiguration().setProxy("192.168.0.1", 9527);  
httpClient.getParams().setAuthenticationPreemptive(true);//重要!!!告诉httpclient,使用抢先认证,否则你会收

到“你没有资格”的恶果  
  
httpClient.getParams().setParameter(CredentialsProvider.PROVIDER, new MyProxyCredentialsProvider());  
httpClient.getState().setProxyCredentials(  
    new AuthScope("192.168.0.1",  
        AuthScope.ANY_PORT, //任意端口哦,可要小心  
        AuthScope.ANY_REALM),//任意域哦,可要小心  
new UsernamePasswordCredentials("username",//proxy的用户名  
                        "password"));//proxy的密码  

...

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



转自:http://blog.sina.com.cn/s/blog_5a7cc3aa0100cctq.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值