我正在尝试飞利浦Hue API。我得到了调试CLIP正常工作。现在我想更动态地使用它,让它在处理过程中发出咕噜声。
问题:我不知道在哪里开始格式化该请求。根据API文档,您可以打开或关闭灯泡:
Address: http://<bridge ip address>/api/newdeveloper/lights/1/state
Body: {"on":false}
Method: PUT
好的,所以我得到了地址部分。但是如何将Body格式化为URL?我如何确定这是一个PUT请求?
答案 0 :(得分:2)
您不会将正文格式化为网址;正文和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}'
答案 1 :(得分:1)
为了扩展minitech的答案,可以通过HTTP方法发送数据,例如PUT,DELETE,POST和GET。如果您尝试使用要发送的数据“格式化网址”,即根据您要发送给Hue的参数生成URL,则实际上您使用的是GET,而不是PUT或POST。
不幸的是,DELETE和PUT无法通过普通的HTML表单通过“方法”发送,只能通过POST和GET发送。根据您使用的语言,您需要使用LWP或卷曲或找到其他方式来发送PUT数据。如果javascript是您首选的编程语言,Hue的clip.html使用javascript和XMLHttpRequest()。