使用HttpClient4.X模拟浏览器登录使用Google Alert(二)
终于算是熬到了礼拜五了,写了一天的文档,都快疯掉了。
在前一篇文章中我们已经完成了登录操作,现在我们就继续登录之后的操作,比如创建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);
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));
HttpEntity entity = new UrlEncodedFormEntity(formParams, "UTF-8");HttpPost request = new HttpPost(CommonConst.URL_ALERT_CREATE);request.setEntity(entity);
HttpResponse hr = hc.execute(request, context);
EntityUtils.consume(hr.getEntity());