`
ostrichmyself
  • 浏览: 37531 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Httpclient4.0 学习之三: 应用流程

阅读更多
第一:得到登陆的页面

用Get方法去测试。查看以下结果:

1. 是否得到预期的页面? 指一些数据, 比如从IE上能显示的HTML Body这类东东

2. 是否得到Sessions cookie?
   一般登陆进去之后, 才会有这样的Sessions Cookie, 记得上一讲中的Http Response Header吗, 里面的Set Cookies, 可能就包含Sessions Cookie。如果此时没有Set Cookies肯定说明此时Session 没有建立。 说明你还需要做一步工作,就是"建立Sessions" 等下会讲到。
(我引申一下, 即使存在Set Cookie这样的字段, 一定保证里面设置的就是Session吗? 也不一定, 保险的做法是, 按照浏览器的习惯, 从主页, 再到登陆页面,主页的目的只是为了获取必要的Cookie 不要一步登天, 当然, 我们可以测试一下先, 免得做不必要的登陆主页,获取Cookie的操作)
   如果, 上面的set cookie你也有了, 请求的URL也确认无误, 但死活就是得不到预期的登陆界面。很可能就是对方有个字段没有设置:User-Agent, 这个是指明你采用了哪个客户端像服务器发送请求, 比如常用的有IE, FF, Chrome,设置主流的流浪器就成!

第二: 建立Session. 这是在第一步失败的情况下需要的工作。通常的情况是, 从主页去Get一把, 从而得到Cookie。 下次Login请求的时候,将这些Cookie带进去。搞定...

HTTPClient提供了一套自动机制帮我们发送Cookie,Cookie Store, 把Response中的Cookie放置其中,并在发送的时候,帮我们发过去(如果没有发送过去, 检查Cookie Store是否为同一个)。
  如果依然没有发送过去, 这个时候就要检测Cookie Scope, 比如:
  A cookie for host "jakarta.apache.org" will not be sent to host "tomcat.apache.org". A cookie for domain ".apache.org" will be sent to both
注意,BT的来了:
A cookie for host "apache.org", without the leading dot, will not be sent to "jakarta.apache.org".
如果还不行...崩溃... 先别看了, 以后再去这里寻求帮助好了


第三: 分析表单。 这个我觉得没有必要, 我分析的方式是通过浏览器来的。 不想搞那么复杂。 通过配置文件去灵活转化,何必搞表单这么复杂的解析工作?


OK, 我觉得我们可以按照Browser的习惯处理HttpClient的应用:
1. 得到必要的Cookie包括Session id, 这个时候,我们还是用用主页登陆比较好。
此时如果主页没有可用的信息, 则我们只需要处理Response中的Cookie字段就好了。

2. 找到访问的路径。 设置必要的参数对, 和必要的url(包括表单项目)



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics