如何解析RESTful URL

时间:2013-09-16 01:31:11

标签: rest philips-hue

我正在尝试飞利浦Hue API。我得到了调试CLIP正常工作。现在我想更动态地使用它,让它在处理过程中发出咕噜声。

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

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

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

2 个答案:

答案 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()。