我有一个php api,我托管在另一个服务器/域中,从另一个服务器使用php curl进行访问,突然它停止了连接,但当我尝试在命令行中访问api时,它会工作。
<?php
$requestPayload  = array(
'user_id' => API_USER_ID,
'user_key' => API_KEY,
'select_limit' => '*',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"https://example.com/direct/_api/list.php");
curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
curl_setopt($curl, CURLOPT_POST,1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($requestPayload));
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl, CURLOPT_TIMEOUT, 120);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)');
$result = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
?>
上面的代码会给我错误
Http error Failed to connect to example.com port 443: Connection timed out
,但当我在命令中运行url时,它工作正常
curl -XPOST -d 'user_id=vvcZ....&user_key=T0Z8...&select_limit=*' 'http://example.com/direct/_api/list.php'
我不知道问题是来自发送服务器还是api服务器。