对于许多请求,我在使用curl从php得到拒绝访问错误,我的代码是:
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_URL, 'https://www.vueling.com/en');
curl_setopt($ch, CURLOPT_TIMEOUT, '2');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
返回以下内容:
<H1>Access Denied</H1>
但是,如果我直接在命令行上运行它:
curl -v https://www.vueling.com/en
我得到了完整的响应,我的ip没有被阻止,我不知道为什么CLI工作,但PHP不工作?有人有什么想法吗?
1条答案
按热度按时间ego6inou1#
curl
的CLI版本可能会发送一个被该网站接受的用户代理,但curl的PHP版本可能会发送一个被拒绝的用户代理。所以你必须检查curl发送的头在两种方式上是相似的。