• 技术文章 >后端开发 >php教程

    急用snoopy抓取EMS验证码,远程模拟查询单号,无法获取JSessionID的有关问题

    2016-06-13 10:06:21原创673

    急:用snoopy抓取EMS验证码,远程模拟查询单号,无法获取JSessionID的问题?
    会员life169之前在PHP版块发过一篇文章叫(用snoopy抓取EMS验证码,远程模拟查询单号,取得查询结果)
    链接是:http://topic.csdn.net/u/20100715/23/d58f2006-40ea-4cab-82e3-3bbcf4cd1e9f.html


    可是我在测试的过程中却遇到一个问题,JsessionID,经常会取不到,

    session_start();
    include("Snoopy.class.php");
    $url = "http://www.ems.com.cn/qcgzOutQueryNewAction.do?reqCode=gotoSearch";
    $url2 = "http://www.ems.com.cn/qcgzOutQueryNewAction.do";

    $snoopy = new Snoopy;
    $snoopy->fetch($url); //获取所有内容
    print_r($snoopy->headers);

    打印头信息,返回的是:
    Array ( [0] => HTTP/1.1 200 OK [1] => Content-Type: text/html; charset=GB2312 [2] => X-Powered-By: Servlet/2.4 JSP/2.0 [3] => Accept-Ranges: bytes [4] => Connection: close [5] => Date: Tue, 15 Mar 2011 11:24:53 GMT [6] => Age: 1876 [7] => Content-Length: 22804 )

    正确的返回信息应当是:
    Array ( [0] => HTTP/1.1 200 OK [1] => Cache-Control: no-cache="set-cookie" [2] => Connection: close [3] => Date: Fri, 11 Mar 2011 07:42:04 GMT [4] => Content-Type: text/html; charset=GB2312 [5] => Set-Cookie: JSESSIONID=N5SMs1dMW1Wy8LJ48Z1ZhP1p2kS1GSgY5twTNxcYpz1MvgYZk0LQ!195316506; path=/ [6] => X-Powered-By: Servlet/2.4 JSP/2.0 )

    前面返回的里面没有JSESSIONID, 导致在后面的查询中返回不了查询结果, 我已经整了2天了,在网上查了大量资料,还是没有头绪,现在有一个奇怪现象,如果在浏览器打开ems.php页面,过一段时间再刷新页面后,又会返回正确的headers信息,但是过一阵又不能正确返回,为什么会出现这种情况, 希望有大虾能帮我看看是怎么回事? 急



    ------解决方案--------------------
    恩 好了 到这里下吧

    http://download.csdn.net/source/3100240

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:snoopy gt quot nbsp JSessionID
    上一篇:有人用过ganglia吗解决方案 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊PHP escapeshellarg函数使用的中文问题• PHP原生类的总结分享• 分享PHP函数使用小工具(附代码示例)• PHP安全编码总结(经验分享)• 非常全面!PHP常见漏洞代码总结!
    1/1

    PHP中文网