我正在尝试通过卷曲到达一个网址。我系统地收到特定网址的404错误,而该页面是由我的浏览器找到的。 我试图在调用curl_exec之前将用户代理和cookie设置为与浏览器的调用一样近,但是并没有成功摆脱404错误(这些是在stackoverflow中发布的类似问题的解决方案,但似乎没有以我的情况工作;请参见cURL returns 404 while the page is found in browser。
$url = "http://www.zenaps.com/rclick.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36";
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
$cookiefile = './cookie.txt'; // contains cookies saved after opening url in browser through Chrome addin cookies.txt
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
$response = curl_exec($ch);
echo $response;
您是否知道在不出现404错误的情况下可以如何访问此网址?
谢谢!
答案 0 :(得分:0)
尝试一下:
// create curl resource
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, "http://www.zenaps.com/rclick.php");
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
echo($output);
// close curl resource to free up system resources
curl_close($ch);
答案 1 :(得分:0)
将CURLOPT_NOBODY
选项设置为true
时,这意味着cURL将执行HEAD请求而不是GET请求。
在GET请求上,URL似乎提供了200,而在HEAD请求上给出了404。
尝试将CURLOPT_NOBODY
设置为false
。