2013-09-16 2 views
1

Я пытаюсь использовать API-интерфейс Philips Hue. У меня отладка CLIP работает нормально. Теперь я хотел бы использовать это более динамично, заставляя его мурлыкать с помощью обработки.Как разобрать URL-адрес RESTful

Проблема: я понятия не имею, где даже начать форматирование этого запроса. Согласно API Docs, вы включите лампу или выключить так:

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

Хорошо, так что я получаю адресную часть. Но как мне отформатировать тело в URL? И как я устанавливаю, что это запрос PUT?

ответ

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}' 
1

Чтобы расширить свой ответ на minitech, данные могут быть отправлены по HTTP me такие как PUT, DELETE, POST и GET. Если вы пытаетесь «форматировать URL» с данными, предназначенными для отправки, т. Е. Для создания URL-адреса на основе параметров, которые вы хотите отправить в Hue, вы фактически используете GET, а не PUT или POST.

К сожалению, DELETE и PUT не могут быть отправлены через обычные формы HTML через «метод», только POST и GET. В зависимости от того, какой язык вы используете, вам нужно использовать LWP или завиток или найти другой способ отправки данных PUT. Hue's clip.html использует javascript и XMLHttpRequest(), если javascript - ваш предпочтительный язык программирования.

Смежные вопросы