Closed MrMurom closed 4 years ago
Добрый день! 405 ошибка означает неправильно указанный http-метод. Данный роут обрабатывает только POST-запросы, убедитесь что вы по ошибке не указали другой метод. Если ошибка повторится - пришлите нам полное тело http запроса.
Оправляю именно POST запрос. Прислать полное тела запроса нет возможности. Запрос программно отправляется через 1с.
Очень странно что в ошибке пишет
{"message":"The PUT method is not supported for this route. Supported methods: POST."}
Видно на стороне 1с все таки проблема.
Очевидно, ваше приложение, всё же, отправляет PUT запрос. Для дебага запроса к нашему приложению могу вам порекомендовать воспользоваться сторонним сервисом вроде https://requestbin.com/, где можно отслеживать полную информацию по отправляемым запросам - просто вместо эндпоинта нашего приложения в коде вашего приложения указываете выданный сервисом урл.
Проверил запросы через сервис https://requestbin.com/ Видно по логам что я отправляю POST запрос. Подскажите в чем еще проблема ? Скрин ниже
Можете прислать полный url, по которому вы к нам делаете запросы?
Запросы посылаю через соединение с сервером сервер cart.api.onliner.by порт 443 урл /orders/k7t83e/pickup-point-delivered
полный урл будет таким
https://cart.api.onliner.by/orders/k7t83e/pickup-point-delivered
на какой операционной системе работает ваш код?
и номер вашего магазина подскажите
у нас запрос проходит по указанным данным. попробуем сторонним клиентом на вашей стороне исполнить данный запрос. сию мы получаем в ответ 409, и сообщение "Отметка о поступлении заказа в пункт выдачи уже есть", что говорит о том, что проблем у нас на HTTP слое нет и ошибка 405 возникала обоснованно.
на какой операционной системе работает ваш код?
Windows server
и номер вашего магазина подскажите
2033
у нас запрос проходит по указанным данным. попробуем сторонним клиентом на вашей стороне исполнить данный запрос. сию мы получаем в ответ 409, и сообщение "Отметка о поступлении заказа в пункт выдачи уже есть", что говорит о том, что проблем у нас на HTTP слое нет и ошибка 405 возникала обоснованно.
Я не понимаю все равно почему мне приходит 405 ошибка. Что не так в нашем запросе ? Готов связаться с вами, вместе посмотреть, предоставить доступы, но надо как-то решить проблему.
а какая версия Windows server? попробуем найти для вас клиент для выполнения запроса
а какая версия Windows server? попробуем найти для вас клиент для выполнения запроса
Windows server 2008 R2 Enterprise Build 7601 x64
попробуйте установить клиент curl https://curl.haxx.se/windows/
и в консоли выполнить запрос, предварительно заменив %TOKEN% на ваш свежий авторизационный токен
curl --request POST \
--url https://cart.api.onliner.by/orders/k7t83e/pickup-point-delivered \
--header 'accept: application/json; charset=utf-8' \
--header 'authorization: Bearer %TOKEN%' \
--header 'content-type: application/json; charset=utf-8' \
--data '{"comment": "Ваш заказ номер ONLe71336 прибыл в ПВЗ"}'
если получите невнятный ответ, то скиньте сюда полный вывод консоли или скриншот с ним
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\murom\curl-7.71.1-win64-mingw\bin>curl.exe --request POST --url https:/ /cart.api.onliner.by/orders/k7t83e/pickup-point-delivered --header 'accept: appl ication/json; charset=utf-8' --header 'authorization: Bearer xxxxxxx' --header 'content-type: application/json; charset=utf-8'--data '{"c omment": "123123123"}' {"message":"Content-Type supports only application\/json"}curl: (6) Could not re solve host: application curl: (6) Could not resolve host: charset=utf-8' curl: (6) Could not resolve host: Bearer curl: (6) Could not resolve host: xxxxxxxxx curl: (6) Could not resolve host: application curl: (6) Could not resolve host: charset=utf-8'--data curl: (3) unmatched brace in URL position 2: '{comment: ^
из-за разности операционных систем, надо кавычки заменить
curl --request POST --url https://cart.api.onliner.by/orders/k7t83e/pickup-point-delivered --header "accept: application/json; charset=utf-8" --header "authorization: Bearer %TOKEN%" --header "content-type: application/json; charset=utf-8" --data "{'comment': 'Ваш заказ номер ONLe71336 прибыл в ПВЗ'}"
Расшифровать полученный ответ, можно на сайте https://jsoneditoronline.org/ мы просто кириллицу отдаем как юникод символы
Удалось найти решение вопроса. Очевидно очередной баг платформы 1с (8.3.10.2561 Да старая. Не дают обновить.).
Если через одно соединение вызывать метод "patch" а после него метод "post", то получаю от вас ошибку 405.
Если создать новое соединение с аналогичными параметрами и вызвать метод "post" через него, то все работает.
И понятно почему отрабатывал метод "post" через https://requestbin.com/ - я его запускал через отдельное соединение, чтоб не мучаться с авторизацией.
Добрый день. При попытке подтвердить статус доставки заказа в ПВЗ получаю ошибку 405 Заказ находится в статусе "Передан в доставку" Способ доставки указан "В пункт выдачи"
запрос /orders/e71336/pickup-point-delivered заголовки
"Content-Type" "application/json; charset=utf-8" "Accept" "application/json; charset=utf-8" "Authorization" "Bearer xxxx"
тело запроса{ "comment": "Ваш заказ номер ONLe71336 прибыл в ПВЗ" }
В чем может быть ошибка?