【发布时间】:2017-06-14 21:17:13
【问题描述】:
我正在尝试使用以下代码从我家简单地读取飞利浦 Hue 灯信息:
$fp = fopen(dirname(__FILE__).'/errorlog.txt', 'a');
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'http://119.119.20.20:2827/api/Js82jH2lao-pAiws89S9A-k9hHsukw72/lights',
CURLOPT_VERBOSE => true,
CURLOPT_STDERR => $fp
));
$resp = curl_exec($ch);
curl_close($ch);
print_r($resp);
它什么也不返回。查看 errorlog.txt 它说:
* About to connect() to 119.119.20.20 port 2827 (#0)
* Trying 119.119.20.20... * Connection refused
* couldn't connect to host
* Closing connection #0
我可以通过hurl.it 之类的网站读取数据并更改灯光设置,这告诉我我的路由器设置正确。我的服务器上的allow_url_fopen 已打开。我使用 curl 是因为我也想做一个 PUT 请求。我不想使用库来简单地打开和关闭灯。
我怎样才能做到这一点?
编辑澄清:我正在使用外部服务器来托管 php,它与我家中的 Philips Hue 网桥通信。您可以假设我正确转发了我的端口。没有 VPN。
【问题讨论】:
-
所以不在家庭网络上?通过没有 VPN 的互联网?那么端口转发?
-
@ficuscr 我编辑了我的帖子以澄清这一点
-
你的CURL error 说什么?
-
在外部 ubuntu 服务器上尝试过:pastebin.com/sqMTTsd5 并立即工作。似乎没有重定向。所以
CURLOPT_FOLLOWLOCATION不应该是必要的吧? -
“可能不会”。我倾向于总是使用那个指令——也许是不必要的。认为您将不得不嗅探从 PHP 发出的请求,但无法深入了解这一点。祝你好运!
标签: php curl philips-hue