终于算是熬到了礼拜五了,写了一天的文档,都快疯掉了。
在前一篇文章中我们已经完成了登录操作,现在我们就继续登录之后的操作,比如创建Alert,修改Alert,删除Alert。这里的操作基本上都是差不多的,所以我们就简单说下创建Alert。
创建Alert也同样是发送POST请求。所有的操作基本上都和之前的登录操作差不多,获取HTTP POST地址,添加HTTP Header,然后发送请求。唯一不同的地方在于,我们需要将之前登录后的Cookies信息也同时传过去,只有这样,对方服务器才会认为模拟的帐号是已经登录的。
在HttpClient3.X中,我们还需要手动的处理Cookies的问题,但是在HttpClient4.X中只要我们进行简单的设置,就能够自动处理Cookies的问题。
hc.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BEST_MATCH);
如果使用的是4.3或者之后的版本,建议不是用CookiePolicy.BEST_MATCH,CookiePolicy这个类在这个版本之中已经显示被抛弃,建议使用CookieSpecs.BEST_MATCH。
注意的是,Cookies的Policy是在登录之前就应该设置好的。
接下来就是继续设置参数。
List<BasicNameValuePair> formParams = new ArrayList<BasicNameValuePair>();
formParams.add(new BasicNameValuePair("q", alertName));
formParams.add(new BasicNameValuePair("t", resultType));
formParams.add(new BasicNameValuePair("f", frequency));
formParams.add(new BasicNameValuePair("l", "0"));
formParams.add(new BasicNameValuePair("e", mailAddress));
接下来创建经过URL编码的参数实体,并创建POST请求实体。
HttpEntity entity = new UrlEncodedFormEntity(formParams, "UTF-8");
HttpPost request = new HttpPost(CommonConst.URL_ALERT_CREATE);
request.setEntity(entity);
然后就可以执行请求了,这些基本都和第一篇讲的差不多。
HttpResponse hr = hc.execute(request, context);
然后我们就能够在Alert的管理界面中看到Alert添加成功了。
最后还有一点需要注意的就是,每一次请求完要记得将请求处理掉,否则再次发送请求是将有可能抛出错误。一旦调用了consume方法,就会将这个Entity所持有的所有资源全部释放并归还给Connection对象给HttpClient,同时也将底层所使用的各种输入输出流给关闭了。这样子的话,就有资源去处理其他请求。
EntityUtils.consume(hr.getEntity());
在这里这种写法也是不安全的,因为HttpClient并无法保证getEntity不会返回null。
That's all.
希望这两篇对大家有所帮助。
Note:同步新浪博客
分享到:
相关推荐
例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....
2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...
在4.x版本中,HTTPClient进行了重大更新,与之前的3.x版本相比,它引入了更多的功能、优化和改进。本文将深入探讨HTTPClient 4.x的核心特性,并基于提供的"httpclient4.1_examples"示例文件,解析如何使用这个库进行...
HttpClient 4.x引入了PoolingHttpClientConnectionManager,它可以复用已建立的TCP连接,提高性能。你需要配置合适的最大连接数、每个路由的最大连接数,以及连接的超时时间。 此外,HttpClient支持多种认证机制,...
《HttpClient 4.3.x详解及其依赖分析》 HttpClient是一个由Apache基金会开发的Java库,主要用于执行HTTP请求。HttpClient 4.3.x是该库的一个重要版本,它提供了丰富的功能和改进,使得开发者能够更方便地与Web...
含tutorial,commons-logging-1.1.1, commons-codec-1.4-bin.zip, httpcomponents-client-4.0.3-bin.zip, httpcomponents-core-4.1-bin.zip
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....
在HttpClient4.x中,使用完后的HttpClient对象,需要显式地释放其使用的底层HTTP连接。如果不释放,将会导致系统资源的浪费,进而影响系统的性能。下面是一个手动释放底层HTTP连接的示例代码: ```java public ...
描述中提到的链接指向了一个ITEYE博客,虽然内容未给出,但可以推测博主可能分享了关于使用HTTPClient 4.3.X的一些经验,可能包括配置,最佳实践,或者是遇到的问题及解决方案。 标签 "源码" 暗示我们可能会讨论到...
这个"HttpclientDemo(4.x与4以下的版本)"示例显然涵盖了HttpClient在不同版本间的使用方法,特别是4.x版本和4.x之前的版本之间的差异。在本文中,我们将深入探讨HttpClient的基本概念、主要功能以及在不同版本中的...
JAVA使用HttpClient模拟浏览器GET、POST请求 在本文中,我们将介绍如何使用Apache Commons HttpClient库来模拟浏览器的GET和POST请求。HttpClient库是一个开放源码的项目,是Apache Commons项目的一部分,旨在简化...
HttpClient3.1.jar是Apache HttpClient库的一个版本,它在Java编程环境中用于实现HTTP客户端通信。...以下是对HttpClient3.1...在新的项目中,开发者通常会考虑使用更新的版本(如HttpClient 4.x)或替代品,如OkHttp。
《深入理解HTTPClient 4.5及其依赖》 在Java编程世界中,HTTPClient是一个非常重要的库,它允许开发者执行HTTP请求并处理响应。本文将深入探讨`httpclient-4.5.jar`这个包,以及它所依赖的相关jar包,帮助你更好地...
4. **重试和恢复策略**:HttpClient内置了重试和恢复策略,当网络出现问题时,可以自动进行重试,保证请求的可靠性。 5. **异步和同步模式**:HttpClient提供同步和异步两种操作模式,适应不同场景的需求。 提到...
《android原生POST、httpClient4.X实现向PHP服务器上传文件》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17565481,奶奶个熊,今天CSDN写个博客都写不成,格式啥啥的完全跟写的时候不...
HttpClient 4.x系列是Apache基金会开发的一个开源项目,旨在提供一个高效的、高度可定制的HTTP客户端API。4.5.2版本在4.5.1的基础上修复了一些已知问题,增强了性能,并对API进行了微调,以更好地适应现代网络环境。...
2. `httpcore-4.x.x.jar`: 这是HttpClient的基础组件,提供了网络通信的基本功能,如套接字连接和输入/输出流处理。 3. `httpmime-4.x.x.jar`: 这个库扩展了HttpClient,支持在HTTP请求中处理MIME类型的数据,比如...