解决方案 »

  1.   

    第一:带上CURLOPT_REFERER试试,对方是不是有可能判断了页面来源
    第二:对方的登陆页是否有隐藏参数,如果有的话需要先访问登陆页获取隐藏值再提交
    第三:没看见你什么地方提交了登录的账号和密码,就是自己这边POST过来的账号和密码
      

  2.   

    $url = "http://202.117.64.25/loginAction.do";
    $fields = "dllx=dldl&zjh=201224080126&mm=201224080126";
    这是提交账户和密码!
    CURLOPT_REFERER 要加什么?
    <input   name="page"   type="hidden"   id="page" value="1">&nbsp;<input   name="currentPage"   type="hidden"   id="currentPage" value="1">
    找到两个隐藏参数,但是貌似没什么用
      

  3.   

    $url = "http://202.117.64.25/loginAction.do";
     $fields = "dllx=dldl&zjh=201224080126&mm=201224080126";
    这是提交账户和密码!
    CURLOPT_REFERER 要加什么?
    <input   name="page"   type="hidden"   id="page" value="1">&nbsp;<input   name="currentPage"   type="hidden"   id="currentPage" value="1">
    找到两个隐藏参数,但是貌似没什么用
      

  4.   

    帮你测试了一下,登录是没问题的,已经登录成功,主要问题出在你第二次请求的参数上,检查一下参数,抓取你第二个页面上所有的参数下来,另外JAVA的这个报错不是很懂!
      

  5.   

    你的流程和代码都有问题!正确的流程应该是:
    1、访问 http://202.117.64.25/
    获取 cookie。因为他的 sessionid 在这个页面发出的
    2、访问 http://202.117.64.25/loginAction.do 并发送 post 表单数据
    3、第2步返回的是一个框架页,你得根据需要进入某个框架
    比如访问 http://202.117.64.25/menu/s_top.jsp 可以得到已登录信息:欢迎光临&nbsp;黄小龙
    测试代码<xmp>
    <?php
    include 'curl/curl_get.php';
    $url = 'http://202.117.64.25/';
    curl_get($url);$url = "http://202.117.64.25/loginAction.do";
    $d = 'dllx=dldl&zjh=201224080126&mm=201224080126';
    curl_get($url, $d);echo curl_get('http://202.117.64.25/menu/s_top.jsp');
    echo curl_get('http://202.117.64.25/menu/mainFrame.jsp');
    echo curl_get('http://202.117.64.25/xsxxviewAction.do');
    curl_get.php<?php
    function curl_get($durl, $data=array()) {
      $cookiejar = realpath('cookie.txt');
      $t = parse_url($durl);
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL,$durl);
      curl_setopt($ch, CURLOPT_TIMEOUT,5);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
      curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
      curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/");
      curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiejar);
      curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch, CURLOPT_ENCODING, 1); //gzip 解码
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
      if($data) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
      }
      $r = curl_exec($ch);
      curl_close($ch);
      return $r;
    }
      

  6.   

    非常感谢你,成功了,但是还是不知道为什么?
    这是我最终代码<?php
    include './curl/curl_get.php';
    $url = "http://202.117.64.25/loginAction.do";
    $d = 'dllx=dldl&zjh=201224080126&mm=201224080126';
    curl_get($url, $d);
    echo curl_get('http://202.117.64.25/xszxcxAction.do?oper=tjcx', 'zxxnxq=2014-2015-1-1&zxXaq=0&zxJxl=0011&zxZc=11&zxJc=2&zxxq=2&pageSize=20&page=1&currentPage=1&pageNo=');
    ?>