【问题标题】:cURL connection refusedcURL 连接被拒绝
【发布时间】: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


【解决方案1】:

我猜这是用户/权限问题。

www-data/http 用户是否有权在您的服务器上使用 curl?所有 php 脚本都将以该用户身份执行,因此如果没有正确的权限 curl 将失败并给出此错误。

哪个用户创建了 php 脚本?您是否更改了文件权限以允许其他用户正确的权限?

说了这么多,你说你不想为这么简单的事情使用库,为什么还要为 curl 烦恼呢? file_get_contents 可以开箱即用地 PUT、POST 等。

从网桥获取状态作为关联数组:

$result = json_decode(file_get_contents('http://119.119.20.20:2827/api/Js82jH2lao-pAiws89S9A-k9hHsukw72/lights'), true);

使用 PUT 请求关闭所有灯:

$data = '{"on":false}';
$result = file_get_contents('http://119.119.20.20:2827/api/Js82jH2lao-pAiws89S9A-k9hHsukw72/groups/0/action', null, stream_context_create(array(
'http' => array(
'method' => 'PUT',
'header' => 'Content-Type: application/json' . "\r\n"
. 'Content-Length: ' . strlen($data) . "\r\n",
'content' => $data
),
)));

刚刚在我的 Hue 设置上尝试过。对我有用。

【讨论】:

    猜你喜欢
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2022-12-21
    • 2023-03-23
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多