我需要从服务器中提取HTTPS页面,并使用cURL打印错误“来自服务器的空回复”。 这是我的代码:
<?php
$ch = curl_init();
$headers = array('HTTP_ACCEPT: Something', 'HTTP_ACCEPT_LANGUAGE: fr, en, da, nl, it', 'HTTP_CONNECTION: Something');
curl_setopt($ch, CURLOPT_URL, 'https://gibbohotel.it/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec( $ch );
if(curl_exec($ch) === false)
{
echo 'Curl error: ' . curl_error($ch);
}
else
{
echo 'Operation completed without any errors';
}
curl_close($ch);
?>
这是外部服务器的代理问题吗?
答案 0 :(得分:0)
该特定站点拒绝curl查询-命令行查询返回相同的结果。因此,您必须假装将CURLOPT_USERAGENT与其他用户代理一起使用。
<?php
$ch = curl_init();
$headers = array('HTTP_ACCEPT: Something', 'HTTP_ACCEPT_LANGUAGE: fr, en, da, nl, it', 'HTTP_CONNECTION: Something');
curl_setopt($ch, CURLOPT_URL, 'https://gibbohotel.it/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$result = curl_exec( $ch );
if(curl_exec($ch) === false)
{
echo 'Curl error: ' . curl_error($ch);
}
else
{
echo 'Operation completed without any errors';
}
curl_close($ch);
?>
但是,此网站可能有未通过卷曲或类似方式收割的原因,因此请不要抱怨,如果这样做会被阻止...