我想在网站上使用php curl进行查询:Apple服务和支持覆盖范围,并希望使用串行NO/IMEI NO (example IMEI: 359209071801769)
获得结果。
我该怎么做。有什么想法吗?
使用下面的代码,我没有得到任何结果,因为我无法发布该值。有什么想法吗?
<?php
$cookie = "cookie.txt";
if(!$_POST){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://checkcoverage.apple.com/gc?t=image×tamp=".round((microtime(true) * 1000) - (60*60*3/1000)));
curl_setopt($curl, CURLOPT_REFERER, "https://checkcoverage.apple.com/tr/tr/");
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
$gv = curl_exec($curl);
$sadf = json_decode($gv, true);
echo '<form action="" method="post">';
echo '<img src="data:image/jpeg;base64,'.$sadf["binaryValue"].'" /><br />';
echo 'Type Captcha Code <input type="text" name="captcha" /><br />';
echo 'Type IMEI<input type="text" name="imei" /><br />';
echo '<input type="submit" value="Run" />';
echo '</form>';
curl_close($curl);
}else{
$imei = $_POST["imei"];
$captcha = $_POST["captcha"];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://checkcoverage.apple.com/tr/tr/");
curl_setopt($curl, CURLOPT_REFERER, "https://checkcoverage.apple.com/tr/tr/");
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
preg_match('#csrfToken: "(.*?)"#si', curl_exec($curl), $token);
$post = "sno=$imei&ans=$captcha&captchaMode=image&CSRFToken=".$token[1];
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$content = preg_replace("/<head.*>/i", "<head><base href='https://checkcoverage.apple.com/' />", curl_exec($curl), 1);
if(curl_exec($curl) === false){
echo 'Curl error: ' . curl_error($curl);
}else{
echo $content;
}
curl_close($curl);
}
?>
-
使用空代替GZIP。如果您指定GZIP,则它将仅处理GZIP,仿佛指定为空,它将处理全部。
curl_setopt($ curl,curlopt_encoding,");
-
为您的cookie而不是绝对路径使用完整的路径。即
$cookie = "/var/some/cookie.txt"
-
使用http_build_query用于发布参数而不是原始参数(如果您的邮政参数中有任何特殊字符)。
-
使用详细信息运行代码,可以查看卷发的情况。
curl_setopt($ curl,curlopt_verbose,true);