快速业务通道

Apache Common HttpClient使用之七种武器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

Apache Common HttpClient使用之七种武器

时间:2011-06-21

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); ...

Apache Common HttpClient使用之七种武器(2)

时间:2011-06-21

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,使用抢先认证,否则你会收到“你没有资格”的恶果  /*  这一步也至关重要,MyProxyCredentialsProvider实现了org.apache.commons.httpclient.auth.CredentialsProvider接口,  返回代理的credential(username/password)*/ 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的密码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号