我尝试通过curl登录到另一个网站时,它可以正常工作并将每个cookie保存到文件中。但是,当我尝试登录到此特定页面时,不会保存它。我也将CURLOPT_COOKIESESSION
设置为true。 Cookie文件正在保存。我必须提到,我将其用作函数,cookie的名称是特定的,不会改变。但是,当我访问其他网站时,它可以直接保存到txt文件中。我还设置了HEADERS。
请求发布是json,一切都很好。我先登录该网站,但他们还有另一步登录,没有Cookie我就无法登录。
另外我的IP不被禁止,我可以正常请求登录
function curl($url, $post = "", $referer = "") {
$cookie = "cookie.txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "useragent");//This is a normal User Agent
if ($post != "") {
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: */*', 'Connection: Keep-Alive', 'Origin: origin', 'Referer: '.$referer));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
$data = curl_exec ($ch);
if (curl_error($ch))
return curl_error($ch);
if (curl_getinfo($ch)["http_code"] == 200)
return $data;
}