当命令工作正常时,PHP Curl超时

时间:2015-05-01 07:45:24

标签: php curl philips-hue

我希望将以下cURL命令转换为PHP

curl -X PUT -H 'Content-Type: application/json' -d '{"on":true,"bri":255,"sat":255,"hue":20000}' http://MYSITE:PORT/api/HASH/lights/1/state

我做了以下但是刚刚超时。

$data_json = '{"on":true,"bri":255,"sat":255,"hue":20000}';
$url = "http://MYSITE:PORT/api/HASH/lights/1/state";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);

$response  = curl_exec($ch);
echo $response;
curl_close($ch);

2 个答案:

答案 0 :(得分:1)

你可以像这样设置卷曲超时

curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT,0); curl_setopt($ ch,CURLOPT_TIMEOUT,400); //以秒为单位的超时

你可能也希望在php.ini中增加php超时

答案 1 :(得分:0)

我会尝试使用提到here的技术调试Curl请求,这应该会为您提供有关Curl正在做什么的更多信息。

此外,如果你愿意使用图书馆,我建议使用Guzzle,它有很好的记录,并且根据我的经验使这些类型的操作不那么痛苦。

+profile