1

我正在尝试使用 Philips Hue API。我让调试剪辑工作得很好。现在我想更动态地使用它,让它与处理一起发出呼噜声。

问题:我什至不知道从哪里开始格式化该请求。根据 API 文档,您可以像这样打开或关闭灯泡:

Address: http://<bridge ip address>/api/newdeveloper/lights/1/state
Body: {"on":false}
Method: PUT

好的,所以我得到了地址部分。但是如何将正文格式化为 URL?以及我如何确定这是一个 PUT 请求?

4

2 回答 2

2

您不会将正文格式化为 URL;正文和 URL 是完全分开的。

下面是 HTTP 请求的样子:

METHOD /path HTTP/1.x
Some: Headers
Foo: Bar

The body

此页面的一个可能看起来像

GET /questions/18819266/how-to-parse-a-restful-url HTTP/1.1
Accept: */*
Host: stackoverflow.com
User-Agent: Firefox 23 and somesuch

因此,要使用 发送您的示例请求curl,它将类似于:

$ curl -v 'http:///api/newdeveloper/lights/1/state' -X PUT --data-binary '{"on":false}'
于 2013-09-16T01:41:22.163 回答
1

为了扩展 minitech 的答案,可以通过 HTTP 方法发送数据,例如 PUT、DELETE、POST 和 GET。如果您尝试使用要发送的数据“格式化 url”,即根据您希望发送到 Hue 的参数生成 URL,那么您实际上使用的是 GET 而不是 PUT 或 POST。

不幸的是,DELETE 和 PUT 不能通过“方法”通过普通的 HTML 表单发送,只有 POST 和 GET。根据您使用的语言,您需要使用 LWP 或 curl 或找到其他方式来发送 PUT 数据。如果 javascript 是您首选的编程语言,Hue 的 clip.html 使用 javascript 和 XMLHttpRequest()。

于 2014-02-03T19:37:35.203 回答