`
yinbinhome
  • 浏览: 123716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Apache Common HttpClient 使用之七种武器

阅读更多

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

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



2.孔雀翎之支持https

如何支持https?

java 代码
  1. static{
  2. Protocoleasyhttps=newProtocol("https",newEasySSLProtocolSocketFactory(),443);
  3. Protocol.registerProtocol("https",easyhttps);
  4. }


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

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

java 代码
  1. HttpClienthttpclient=newHttpClient();
  2. httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议
  3. HttpStateinitialState=newHttpState();
  4. Cookiecookie=newCookie();
  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("Presentcookies:");
  4. for(inti=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. PostMethodpostMethod=newPostMethod("http://www.saybot.com/postme");
  2. NameValuePair[]postData=newNameValuePair[2];
  3. postData[0]=newNameValuePair("武器","枪");
  4. postData[1]=newNameValuePair("什么枪","神枪");
  5. postMethod.addParameters(postData);
  6. ...//出枪吧



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

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

java 代码
  1. HttpClienthttpclient=newHttpClient();
  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,newMyProxyCredentialsProvider());
  8. httpClient.getState().setProxyCredentials(
  9. newAuthScope("192.168.0.1",
  10. AuthScope.ANY_PORT,//任意端口哦,可要小心
  11. AuthScope.ANY_REALM),//任意域哦,可要小心
  12. newUsernamePasswordCredentials("username",//proxy的用户名
  13. "password"));//proxy的密码
分享到:
评论

相关推荐

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    apache commonshttpclient源码

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

    HttpClient API CHM

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

    httpclient使用帮助类

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

    apache-common最全的源码

    "apache-common最全的源码" 提供了该项目的完整源代码,这对于开发者来说是一份宝贵的资源,可以深入理解其实现机制,学习优秀的编程实践,以及进行二次开发或定制。 Apache Commons 包含了多个模块,每个模块都有...

    apache-common最全的jar包

    Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多实用的 Java 类库,解决了在开发过程中常见的问题,提升了代码的可复用性和效率。这个压缩包包含了一些 Apache Commons 的核心模块,让...

    HTTPClient组件的应用

    3. Commons-logging日志组件:commons-logging.jar,HttpClient也使用了这个库进行日志记录,可以从Apache Jakarta common的子项目logging下载。 将这些库文件放入项目的lib目录,并添加到classpath中,才能正确...

    HttpClient使用示例教程

    HttpClient是Apache Jakarta Common项目下的一个子项目,专为Java开发者设计,用于提供高效、功能丰富的HTTP客户端编程工具包。它支持HTTP协议的最新版本和建议,使得开发人员能够轻松地发送HTTP请求,同时方便测试...

    httpclient4.5.5.chm

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

    Apache Commons官网下的jar包

    Apache Commons 是一个由...Apache Commons 的强大之处在于它的模块化设计,允许开发者根据需求选择需要的组件,而不必引入不必要的依赖。同时,由于这些库经过广泛的测试和社区维护,它们的稳定性和可靠性得到了保证。

    httpClient4.1入门教程.pdf

    在本文档中,首先对HttpClient进行了简介,提到了它属于Apache Jakarta Common项目下的子项目,强调了其功能丰富和高效的特点。接着,文档列出了HttpClient的基本功能和特性,包括实现了HTTP协议的多个版本,支持...

    apache common系列包的作用以及帮助文档

    `Apache common包的作用.docx` 文件很可能包含了对上述各个组件的详细介绍和使用案例。而 `API.rar` 文件则可能是Apache Commons 的API文档,解压后可以查看详细的类和方法说明,这对于理解和使用Apache Commons ...

    httpclient相关的jar包

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

    commons-httpclient可用包

    "common包"可能是指Apache Commons项目,这是一系列小型Java库的集合,提供了各种通用功能,例如字符串处理、日期时间操作、I/O流处理等,而HttpClient是其中的一个组件,专注于网络通信。 标签"commons"进一步确认...

    commons-httpclient-3.1.jar

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

    httpclient4.2.1

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

    httpClient4.1入门教程.

    HttpClient 是一个强大的开源 Java 客户端 HTTP 框架,源自 Apache Jakarta Common。它为开发者提供了高效、灵活且功能丰富的工具,以实现与 HTTP 服务器的交互。HttpClient 支持 HTTP/1.1 和部分 HTTP/2 规范,同时...

Global site tag (gtag.js) - Google Analytics