Curl_exec返回404 not found错误,而在浏览器中找到url

时间:2018-09-01 14:01:17

标签: php curl http-status-code-404

我正在尝试通过卷曲到达一个网址。我系统地收到特定网址的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错误的情况下可以如何访问此网址?

谢谢!

2 个答案:

答案 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