【问题标题】:How to parse a RESTful URL如何解析 RESTful URL
【发布时间】:2013-09-16 01:31:11
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: rest philips-hue


    【解决方案1】:

    您不会将正文格式化为 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}'
    

    【讨论】:

      【解决方案2】:

      为了扩展 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()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-24
        • 1970-01-01
        • 1970-01-01
        • 2012-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多