Тело запроса поста узла усекается - PullRequest
0 голосов
/ 15 марта 2019

при попытке отправить событие WakeUp с телом JSON в API событий Alexa с использованием nodejs с axios или request-обещанием, API всегда возвращает ошибку 500.

Я отправил на онлайн-конечную точку , чтобы на самом деле увидеть, что публикуется, и узнал, что тело сообщения усечено, что, очевидно, приводит к неверному json.Я абстрагировал проблему и попытался запустить ее из установки virgin nodejs, используя repl.it , и результат тот же.

Интересно, что между длиной, кажется, есть связьзаголовка и тела.Поэтому, когда я сокращаю токен аутентификации в заголовке, передается больше символов тела.Если я укоротю длинные токены в теле до примерно 450-500 символов (кажется, они меняются), весь запрос будет выполнен.Очевидно, что это не решение, потому что токены необходимы для аутентификации.

Когда я экспериментировал с используемой версией axios, понизив ее до 0,10, я однажды получил результат, но повторная публикация приводила к другим 500. Если я отправляю частодостаточно, чтобы некоторые запросы были выполнены, даже на текущей версии Axios.Я также попытался использовать запрос-обещание с тем же результатом.

У меня возникло ощущение, что я сделал действительно глупую ошибку, но не могу ее найти, и я действительно не могу ничего найти по этой теме, так что этосводит меня с ума.Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Это не было связано с почтовым запросомПричиной ошибки после отправки события WakeUp стал отсутствующий параметр конфигурации, содержащий MAC-адреса в интерфейсе Alexa.WakeOnLANController.Я использовал класс AlexaResponse, чтобы добавить возможность через createPayloadEndpointCapability, которая еще не была изменена для поддержки «нового» интерфейса WakeOnLANController.

Жаль, что обнаружение было принято, и мое WOL-совместимое устройство было добавлено в мойустройства для умного дома, хотя требуемый параметр отсутствовал: (

posthere.io отключение длинных тел постов стоило мне довольно много часов ... С другой стороны, я знаю много разных способов выдачи почтового запросав узле;)

Еще раз спасибо Терри за расследование!

0 голосов
/ 15 марта 2019

Это похоже на хитрость ... во-первых, я не думаю, что вы делаете действительно глупую ошибку. Мне кажется, что одному из низкоуровневых модулей не нравится что-то в теле POST по какой-то причине (действительно странно). Я поиграл с этим, и я получаю абсолютно одинаковое поведение с обоими Axios и запрос .. если я закомментирую токены (correlationToken и токен на предъявителя), все работает нормально.

Если я проверю это локально, все будет работать как надо (например, настроить экспресс-сервер и зарегистрировать тело POST).

Также отправка на https://postman -echo.com / post работает как положено (с исходными данными публикации) ..

Я создал это здесь: https://repl.it/repls/YoungPuzzlingMonad

Мне кажется, что исходный запрос к http://posthere.io не выполняется только из-за размера запроса. Если вы попробуете очень простой POST с большим телом JSON, вы получите тот же результат.

Я получаю тот же результат и с суперагентом тоже ... это заставляет меня поверить, что это что-то на стороне сервера ...

...