ExceuteResultType: -1, Message: "验证码已超时失效,请重新输入。", Result: null
大佬帮我看看,啥问题
function request_post($url = '', $post_data = array()) { if (empty($url) || empty($post_data)) { return false; }
$o = "";
foreach ( $post_data as $k => $v ){
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$postUrl = $url;
$curlPost = $post_data;
$ch = curl_init();//初始化 curl
curl_setopt($ch, CURLOPT_URL,$postUrl);
curl_setopt($curl, CURLOPT_REFERER, $postUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); ;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
1
cst4you 2020-02-22 13:50:46 +08:00
1. 对方验证了时间
2. 单次有效 3. 有其他校验 |
2
l12ab 2020-02-22 14:06:37 +08:00 via iPhone
referer 那一行,你写的参数是$curl
|
3
moult 2020-02-22 18:32:45 +08:00
你$cookie 这个变量哪里定义的?
另外,有一个函数叫 http_build_query,你拼 post_data 的时候可以用。 |
4
buffzty 2020-02-22 18:57:50 +08:00
先用 postman 测试一下,你传的参数对不对.ok 了再去用代码写
|
5
HUALIAN 2020-02-22 20:05:18 +08:00
Cookie 和 协议头 的问题。
|
6
nohello OP cookie 用的 CURLOPT_COOKIEJAR 保存的,获取验证码的 curl 里面保存的,我用 fiddler2 抓的,参数没有问题,Referer 那个后面复制过来的,那个参数复制错了,这个改了跟这个没关系,抓了 cookie,Hm_lvt_2c27f6e0da87610221a9d3a549f876bc=1582343317
Hm_lpvt_2c27f6e0da87610221a9d3a549f876bc=1582363920 Hm_lvt_c9c0128aec42c22340930c8062591842=1582343317 Hm_lpvt_c9c0128aec42c22340930c8062591842=1582363920 Hm_lvt_db4f828728fa6ba91665a269d396f166=1582343317 Hm_lpvt_db4f828728fa6ba91665a269d396f166=1582363920 Hm_lpvt_dc1d69ab90346d48ee02f18510292577=1582363087 Hm_lvt_dc1d69ab90346d48ee02f18510292577=1582363086 language=1,里面有一大堆,是不是跟这个有关系 |
7
ben1024 2020-02-25 13:50:35 +08:00
postman 里 clone code
|
8
encro 2020-02-29 16:29:07 +08:00
https://blog.csdn.net/syhd142/article/details/8525603
PHP 的 CURL 库中可以设置记录和读取 cookie。 有三个选项可以设置 cookie: CURLOPT_COOKIE: 在 http 头中设置 cookie 的信息 CURLOPT_COOKIEJAR: 收到的 http responce 中 set-cookie 的存放路径 CURLOPT_COOKIEFILE: 发出的 http request 中 cookie 从哪里读取 最简单的方式: http://www.phpernote.com/php-function/1371.html curl_setopt($ch, CURLOPT_COOKIE, 'phpernote_uuid=201704592623c0cd921; phpernote_nick_name=haoxiangni; PHPSESSID=hjf6lashdk4fb7an8t047keq42; phpernote_uuid=x201804210994325adbeaa8f0c31; phpernote_nick_name=%E6%9D%A5%E8%87%AA%3C223.72.74.235%3E%E7%9A%84%E7%BD%91%E5%8F%8B; Hm_lvt_30d2c5bcff96aa0e131e06c9bc4980d4=1524361902; Hm_lpvt_30d2c3bcff96aa0e121e06c9bc4980d4=1524383891'); 最后: curl_setopt($ch, CURLOPT_HEADER, 0);去掉试下? |