终于算是熬到了礼拜五了,写了一天的文档,都快疯掉了。
在前一篇文章中我们已经完成了登录操作,现在我们就继续登录之后的操作,比如创建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:同步新浪博客
分享到:
相关推荐
帮助程序员快速从Apache的HttpClient 3.x升级到HttpClient 4.x
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-...
Apache_HttpClient4.x简明教程高清PDF版.pdf Apache_HttpClient4.x简明教程高清PDF版.pdf
httpclient 4.x 与httpclient3.x已经有很大的区别 该资源简单可用 需要下载最新的httpclient4.1.1包及相关的资源包即可使用
含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.3.x和其依赖jar包。
JAVA Apache_HttpClient4.x简明教程高清PDF版.pdf
NULL 博文链接:https://chun521521.iteye.com/blog/2422270
HttpClient4.x手动释放底层HTTP连接[借鉴].pdf
《android原生POST、httpClient4.X实现向PHP服务器上传文件》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17565481,奶奶个熊,今天CSDN写个博客都写不成,格式啥啥的完全跟写的时候不...
《httpClient 4.X与PHP服务器通信详解》博文对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17416417
httpclient4.5.jar开发架包,包含所需要依赖的架包 。
JAVA-用HttpClient来模拟浏览器GET,POST.docx
httpclient使用例子 源码 4.x与4以下的版本
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机...
HttpClient.php类文件,用于模拟get或post请求,源码中基本使用例子
org.apache.commons.httpclient-3.1.jar 用于解决httpclient jar包依赖!!!
HttpClient3.1 亲测可用,放心使用