如何修复Curl中的连接拒绝错误

时间:2019-02-07 17:54:52

标签: php

我正在尝试从以下网址下载xml文件:https://www.bayzade.net/exportlink_181019170321.xml

但是我不能用curl下载它。错误:连接被拒绝。

但是我可以从浏览器上看到url。如何解决此错误?

Xampp PHP7。

$fp = fopen(dirname(__FILE__).'/errorlog.txt', 'a');

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://www.bayzade.net/exportlink_181019170321.xml',
    CURLOPT_VERBOSE => true,
    CURLOPT_STDERR => $fp
));
$resp = curl_exec($ch);
curl_close($ch);
print_r($resp);

连接被拒绝

1 个答案:

答案 0 :(得分:1)

您需要设置CURLOPT_USERAGENT才能发出完整请求,

某些网站为不同的操作系统和浏览器版本提供完全不同的内容或HTML,这是通过检测其用户代理来完成的

仅将CURLOPT_USERAGENT包含在您的CURLOPT中:

$fp = fopen(dirname(__FILE__).'/errorlog.txt', 'a');

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://www.bayzade.net/exportlink_181019170321.xml',
    CURLOPT_VERBOSE => true,
    CURLOPT_STDERR => $fp,
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
));
$resp = curl_exec($ch);
curl_close($ch);
print_r($resp);