1
1

Подскажите пожалуйста как в виртуальном устройстве созданном в Home Center Light отправить POST запрос в формате JSON, без использования LUA (HCL его не поддерживает)?

Необходимо отправить запрос в JSON формате (application/json) вида "key" = "Digit1"

Нужно отправить такой запрос (непосредственно в таком виде, он работает при отправки с ПК):

POST /1/input/key HTTP/1.1
Host: 192.168.0.63:1925 
Cache-Control: no-cache

{ "key": "Digit1" }

Как правильно его написать для HCL? (ему нужны коды перевода коретки, но вопрос в том где именно, и нужно ли urlencod'ить raw data который я ему шлю (JSON). Перепробывал уже по всякому вариантов 20, не работает никак.

задан 18 Авг '14, 16:39

dedalx's gravatar image

dedalx
316
процент согласия: 100%

отредактирован 19 Авг '14, 15:47


Уже нашел решение и только потом прочитал ваше. Действительно вся проблема оказалась в Content-Length, без него не работает (что очень странно).

Вот верный работающий запрос:

POST /1/input/key HTTP/1.1
Content-Length: 18

{"key": "Digit5»}
ссылка

отвечен 20 Авг '14, 17:10

dedalx's gravatar image

dedalx
316
процент согласия: 100%

Если нет LUA не уверен, что это возможно. Есть некоторый костыльный варинат.

Например у нас есть Raspberry Pi (на котором есть вебсервер + PHP). Создаем виртуальное устройство без LUA. В настройках в IP указываем IP адрес Raspberry, порт - 80. Добавляем одну кнопку, в текстовом поле которой пишем: {"key":"Digit1"}0x0D0x0A

(последние магические символы очень важны)

На веб сервере в корне создаем index.php (не забыв удалить index.html, если имеется). И если нажмем кнопку на устройстве, то в PHP скрипт, в переменную $_SERVER["REQUEST_METHOD"] попадет {"key":"Digit1"} (как строка), а дальше уже json_decode и делать, что хочется.

Думаю, что это очень костыльный вариант.

ссылка

отвечен 19 Авг '14, 00:49

Vallefor's gravatar image

Vallefor
1.2k110
процент согласия: 25%

1

Возможно, LUA здесь не причем, мне нужно отправить этот запрос на ТВ (он работает при отправке с ПК):

POST /1/input/key HTTP/1.1 Host: 192.168.0.63:1925 Cache-Control: no-cache

{ "key": "Digit1" }

Как правильно его написать для HCL? (ему нужны коды перевода коретки, но вопрос в том где именно, и нужно ли urlencod'ить raw data который я ему шлю (JSON).

(19 Авг '14, 15:41) dedalx dedalx's gravatar image
1

Ого, не знал, что там вообще можно так запросы писать.

Потестировал сейчас. Получилось вот так: http://dl.dropbox.com/u/5742601/%D0%92%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_114.png

Обратите внимание на Content-Lenth: 16 - он должен быть верным. Если не указать, то вообще ничего не передается, если указать меньше, то обрезается, если больше, то вообще запрос не работает.

(19 Авг '14, 16:26) Vallefor Vallefor's gravatar image
Ваш ответ
toggle preview

Следить за этим вопросом

По почте:

Авторизовавшись, здесь Вы сможете подписаться на обновления по этому вопросу.

По RSS:

Ответы

Ответы и комментарии

Основы размётки

  • *курсив* или _курсив_
  • **жирный** или __жирный__
  • ссылка:[текст](http://url.com/ "Суть вопроса")
  • картинка?![alt текст](/path/img.jpg "Суть вопроса")
  • нумерованый список: 1. Foo 2. Bar
  • чтобы добавить перенос строки в тексте, сделайте два переноса строки в редакторе
  • базовые теги HTML также поддерживаются

Теги к вопросу:

×108
×5

Задан: 18 Авг '14, 16:39

Просмотров: 2,301 раз

Отредактирован: 20 Авг '14, 17:10

powered by OSQA