CURL模拟POST提交问题

我在做一个CURL模拟请求,但是请求没有结果,但因curl_error,给的错误是这个:string(62) "Failed to connect to 61.161.141.113 port 1: Connection refused"
请求的URL地址是这个:http://61.161.141.113/search/wzcxrs.action
我模拟的原网址:http://61.161.141.113/searchsys/
是一个查询违章的网站,验证码我已经可以程序识别,现在就是CURL模拟提交,总是提示我上面那个错误,如果直接访问那个URL地址,页面提示不能跨域访问!
服务器端代码应该是用java写的,应该是设置了某些IP不能直接调用wzcxrs.action 这个action!
所以想请教吧内大神们,有没有办法成功模拟POST提交,并获得正确结果!
二楼是我模拟POST的CURL代码~~~~

5个回答

<?php
header('content-type:text/html;charset=utf-8');
function curlPost($url,$data,$method){
$ch = curl_init(); //1.初始化
curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址
curl_setopt($ch, CURLOPT_CUSTO......
答案就在这里:curl模拟提交(post)
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

/**

  • 模拟 POST 提交
  • @param $url
  • @param $data */ public function submit($url,$data,$referer,$UserAgent){ echo "
    ";print_r($data);
                $ch = curl_init();
                curl_setopt($ch,CURLOPT_URL,$url);
                curl_setopt($ch,CURLOPT_PORT,TRUE);
                curl_setopt($ch,CURLOPT_HEADER,TRUE);
                curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
                curl_setopt($ch,CURLOPT_REFERER,$referer);
                curl_setopt($ch,CURLOPT_USERAGENT,$UserAgent);
                curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
                $return = curl_exec($ch);
                var_dump(curl_error($ch));
                curl_close($ch);
                echo "
    ";print_r($return);
                return $return;
    }

请求头带上Host试试

用finddler抓包看看,模拟提交的时候和实际网页提交时的参数差别

多谢各位,我不用curl了,改用Snoopy了!~~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐