dmitriy.ryabushkin Posted December 7, 2018 Share Posted December 7, 2018 Здравствуйте! Столкнулся с проблемой при изучении RESTful API прибора - при отправке HTTP PUT-запроса получаю ошибку 405 (Http Method Not Allowed). Работал в соответствии с инструкцией (прилагается, отправка PUT на стр.90), с помощью Postman успешно отправил GET запрос, скопировал JSON из ответа и вставил в тело PUT-запроса. В PUT-запросе есть два необходимых заголовка. Обращался к 192.168.127.254/api/slot/0/io/do ioLogik_E1200_Series_UM_e14.3.pdf Link to comment
Незнайка Posted December 7, 2018 Share Posted December 7, 2018 Добрый день! Версия прошивки на модуле? Link to comment
dmitriy.ryabushkin Posted December 7, 2018 Author Share Posted December 7, 2018 V2.4 Build16091211 Link to comment
dmitriy.ryabushkin Posted December 7, 2018 Author Share Posted December 7, 2018 Загрузил версию V3.0 Build17111512 Изменился формат JSON (теперь без отступов), но на отправку PUT-запроса все равно приходит 405 Method not allowed. На всякий случай приведу данные Accept: vdn.dac.v1 Content-Type: application/json URL: 192.168.127.254/api/slot/0/io/do Тип запроса: PUT Тело запроса: { "slot": 0, "io": { "do": [ { "doIndex": 0, "doMode": 0, "doStatus": 0 }, { "doIndex": 1, "doMode": 0, "doStatus": 0 }, { "doIndex": 2, "doMode": 0, "doStatus": 0 }, { "doIndex": 3, "doMode": 0, "doStatus": 0 }, { "doIndex": 4, "doMode": 0, "doStatus": 0 }, { "doIndex": 5, "doMode": 0, "doStatus": 0 }, { "doIndex": 6, "doMode": 0, "doStatus": 0 }, { "doIndex": 7, "doMode": 0, "doStatus": 0 }, { "doIndex": 8, "doMode": 0, "doStatus": 0 }, { "doIndex": 9, "doMode": 0, "doStatus": 0 }, { "doIndex": 10, "doMode": 0, "doStatus": 0 }, { "doIndex": 11, "doMode": 0, "doStatus": 0 }, { "doIndex": 12, "doMode": 0, "doStatus": 0 }, { "doIndex": 13, "doMode": 0, "doStatus": 0 }, { "doIndex": 14, "doMode": 0, "doStatus": 0 }, { "doIndex": 15, "doMode": 0, "doStatus": 0 } ] } } Link to comment
Незнайка Posted December 7, 2018 Share Posted December 7, 2018 Предположу, что тут надо оперировать не с 192.168.127.254/api/slot/0/io/do , а с 192.168.127.254/api/slot/0/io/do/0/doStatus . Разница тут в том, что api/slot/0/io/di имеет тип read-write, а api/slot/0/io/do - read, поэтому метод PUT и не проходит. Link to comment
dmitriy.ryabushkin Posted December 10, 2018 Author Share Posted December 10, 2018 Здравствуйте! Проблема решена. Как и сказал, запросы я отправлял в соответствии с инструкцией, с помощью программы postman. Когда я аналогичный запрос отправил из Java-программы, все сработало. Думаю это из-за заголовка "postman-token" (или как-то так), который добавляет Postman. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now