【问题标题】:PHP CURL sometimes work and sometimes notPHP CURL 有时有效,有时无效
【发布时间】:2021-05-02 18:58:44
【问题描述】:

我这里有一个奇怪的场景。我有 3 台服务器:

1.) http://my-server1/test
--> 这个服务器url只会返回一个json对象“test”

2.) http://my-server2/get_request
--> 这个 url 将通过 PHP CURL 方法发送请求

3.) http://mylocal-machine-server/get_request
--> 和我的server2一样,只是它是通过XAMPP在我的本地机器上运行的

第二台和第三台服务器中的 get_request 方法都有 ff.测试 CURL 的简单代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
curl_exec($ch);

两台服务器成功执行请求,显示google.com的内容。现在,我在服务器 2 和本地服务器的 get_request 方法中将 url 从 google.com 更改为我的 server 1 url,所以现在看起来像这样:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://my-server1/test');
curl_exec($ch);

我在第二台服务器和我的本地服务器上运行 get_request 方法。我本地服务器上的 get_request 能够获取“test”json 对象。但是,我的第二台服务器上的 get_request 需要一段时间才能加载,并且当它完成加载时,它没有显示任何内容。

【问题讨论】:

  • 你有没有尝试使用curl_error()函数检查错误?
  • @greeflas 它说 Curl 错误:无法连接到 my-server1 端口 80:连接超时
  • 但是,我在本地机器上运行没有问题。

标签: php curl server-to-server


【解决方案1】:

我找到了罪魁祸首。我的第二台服务器的 IP 地址未在我的第一台服务器的防火墙(我获取数据的 url)上列入白名单。第二台服务器超时,因为它还不能访问第一台服务器。我是在使用greeflas建议的curl_error时才意识到这一点,发现错误是连接超时。

【讨论】:

    猜你喜欢
    • 2015-03-31
    • 2015-02-11
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多