我用的是HttpClient.class.php这个类,模拟 Http 1.0抓取EMS快递信息,代码在本地测试完全可行,但上传到服务器后出现了问题,我先描述一下我抓取的过程:
1、POST到http://www.ems.com.cn/qcgzOutQueryNewAction.do,得到COOKIE等信息
2、发送COOKIE,并请求验证码图片(正常情况下,如果在Header中设置了正确的COOKIE值,这一步是不会再产生新的COOKIE的)
3、输入验证码,再次POST到http://www.ems.com.cn/qcgzOutQueryNewAction.do得到正确结果代码在本地测试没问题,但上传到服务器却在第2步出现了问题,在第二步,有时会产生新的COOKIE,而有时又不会。我开始以为是HTTP协议版本不对,又换了另完全能模拟HTTP 1.1的类进行测试,还是不行。请问这是怎么回事呢?是Header中缺少了什么信息吗?谢谢各位
1、POST到http://www.ems.com.cn/qcgzOutQueryNewAction.do,得到COOKIE等信息
2、发送COOKIE,并请求验证码图片(正常情况下,如果在Header中设置了正确的COOKIE值,这一步是不会再产生新的COOKIE的)
3、输入验证码,再次POST到http://www.ems.com.cn/qcgzOutQueryNewAction.do得到正确结果代码在本地测试没问题,但上传到服务器却在第2步出现了问题,在第二步,有时会产生新的COOKIE,而有时又不会。我开始以为是HTTP协议版本不对,又换了另完全能模拟HTTP 1.1的类进行测试,还是不行。请问这是怎么回事呢?是Header中缺少了什么信息吗?谢谢各位
此时有cookie了,再连同cookie,表单,验证码,一起POST提交过去,
你第一步,和第二步,都有请求验证码,不就是刷新验证码了?
第一步的POST只是请求了qcgzOutQueryNewAction.do并得到COOKIE,但还没有请求验证码文件,所以不存在两次请求验证码。我这过程基本上跟浏览器是一样的方式。还没有弄明白是怎么回事,呵呵继续求助
官方的地址是:www.ems.com.cn http://www.ems.com.cn/qcgzOutQueryNewAction.do
谢谢各位了啊。