【发布时间】:2018-04-28 04:00:08
【问题描述】:
为什么 PHP 中的 cURL 在从网页获取 HTML 时会返回超时消息?
这里是 PHP 代码。
function getFromUrl( $url )
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
if (curl_errno($curl))
{
echo 'Error:' . curl_error($curl) . '<br>' ;
}
curl_close($curl);
return $result ;
}
当我以 www.google.com 作为 URL 运行函数时,我得到了预期的结果。
$url = 'http://www.google.com' ;
$result = getFromUrl($url) ;
但是,当我在第二个网络服务器上传递网页的 URL 时,我得到一个超时响应。当我将它粘贴到浏览器中时,该 URL 存在。为什么会出现超时消息?
$url = "http://xxx.54.20.170:10080/accounting/tester/hello.html" ;
echo $url . '<br>' ;
$rv = getFromUrl( $url ) ;
echo $rv . '<br>' ;
这里是 cURL 错误信息:
错误:无法连接到 xxx.54.20.170 端口 10080:连接超时
我希望将数据从一台网络服务器传输到另一台。
谢谢,
【问题讨论】:
-
在终端运行
curl http://xxx.54.20.170:10080/accounting/tester/hello.html的结果是什么? -
@meysam 添加 -v,
curl -v http://xxx.54.20.170:10080/accounting/tester/hello.html -
我从命令行运行 curl 并且它有效。返回页面的html。只有当我在共享主机站点上从 PHP 代码运行并且目标是从我办公室的路由器转发的端口时,它才会失败。我将端口 10080 转发到防火墙后面的 Web 服务器。