【问题标题】:PHP CURL Couldn't connect to serverPHP CURL 无法连接到服务器
【发布时间】:2017-06-03 12:55:10
【问题描述】:

我正在尝试使用返回 JSON 数据的 PHP7 CURL 连接到 API。 这是关于以下网址的:

使用以下 PHP 代码:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://api.infcache.com/get.php?format=json&itemnumber=all');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);

$products = curl_exec($ch);

if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

curl_close($ch);
echo'<pre>';
print_r($products);
echo '</pre>';

当我在 api.infcache.com 上的 Ubuntu 终端中 PING 主机时,它可以工作。

我还可以通过终端获得完整的卷曲: curl -X GET 'http://api.infcache.com/get.php?fl&itemnumber=all' 以上返回所有 json 但不在我的 php 脚本中

如果我将 curl 中的 url 更改为 google.com,则会得到完整的响应。有什么问题:api.infcache.com?而且我已经尝试过 file_get_contents()。

谁能告诉我下一步该怎么做?

错误:

cURL error (7): Couldn't connect to server

【问题讨论】:

  • 您的代码照原样对我有用。 PHP5.6,osx。可能是networking 问题,(即您的防火墙阻止出站,或者他们的入站基础设施阻止您入站)。 Ping 不是 TCP/IP,某些路由规则可以允许 ICMP,但会阻止 TCP。
  • 感谢您对我的帖子的反应。我还联系了我的网络托管商以获得防火墙批准。我也认为这是一个网络问题。下周他们将检查防火墙。当我知道更多时,我会用解决方案更新这篇文章。

标签: php json api curl file-get-contents


【解决方案1】:

我的解决方案是在我的虚拟主机上。他们将 IP 地址添加到白名单中。因此,当您遇到 CURL 错误时。只需检查您的网络设置或防火墙。

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2018-10-27
    相关资源
    最近更新 更多