PHP CURL 有时有效有时无效

问题描述

我这里有一个奇怪的场景。我有 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 更改为我的 服务器 1 url,所以现在看起来像这样: >

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

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

解决方法

我找到了罪魁祸首。我的第二台服务器的 IP 地址没有在我的第一台服务器的防火墙(我获取数据的 url)的白名单中。第二台服务器超时,因为它无法访问第一台服务器。刚刚在使用greeflas建议的curl_error时才意识到这一点,发现错误是connection time out。