1

私は Philips Hue API について多くのことを試みています。デバッグ CLIP が正常に動作するようになりました。これをもっと動的に使用したいと思います。Processing でゴロゴロ鳴らしてください。

問題: そのリクエストのフォーマットをどこから始めればよいかわかりません。API ドキュメントによると、次のように電球をオンまたはオフにします。

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

さて、住所部分を取得します。しかし、どのように Body を URL にフォーマットするのでしょうか? そして、これが PUT リクエストであることをどのように確認しますか?

4

2 に答える 2

2

本文を URL にフォーマットしません。本文と URL は完全に分離されています。

HTTP リクエストは次のようになります。

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

The body

このページの 1 つは次のようになります。

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 の回答を拡張すると、PUT、DELETE、POST、GET などの HTTP メソッドでデータを送信できます。送信するデータで「URL をフォーマット」しようとしている場合、つまり、Hue に送信したいパラメーターに基づいて URL を生成しようとしている場合、実際には PUT や POST ではなく GET を使用しています。

残念ながら、DELETE と PUT は「メソッド」を介して通常の HTML フォームを介して送信することはできません。POST と GET のみです。使用している言語に応じて、LWP または curl を使用するか、PUT データを送信する他の方法を見つける必要があります。Hue の clip.html は、javascript が好みのプログラミング言語である場合、javascript と XMLHttpRequest() を使用します。

于 2014-02-03T19:37:35.203 に答える