Вход | Регистрация



В результате POST запроса КодСостояния=405

В результате POST запроса КодСостояния=405
Я
   SeriyP
 
20.04.18 - 11:11
Комрады! Направьте в нужную сторону с POST запросом к API с авторизацией по ключу.
Исходные данные: https://ekfgroup.com/podderzhka/download раздел "API для партнеров"  
APIKey = ПолученныйПоEmailКлюч; 
Соединение = Новый HTTPСоединение("ekfgroup.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Заголовки = Новый Соответствие;    
Заголовки.Вставить("Authorization", "Bearer "+APIKey);
Заголовки.Вставить("Accept-Language", "ru");
Заголовки.Вставить("Accept-Charset", "utf-8");
Заголовки.Вставить("Content-Language", "ru");
Заголовки.Вставить("Content-Charset", "utf-8");
Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded; charset=utf-8"); 
Запрос = Новый HTTPЗапрос("/api/1/ekf/catalog/files", Заголовки);
Запрос.УстановитьТелоИзСтроки("vendorCode=mcb4763-1-01C-pro",КодировкаТекста.UTF8);
Результат = Соединение.ОтправитьДляОбработки(Запрос);

Соответственно, Результат.КодСостояния = 405, данные не загружаются. 
Как победить?
 
 
   Lexey_
 
1 - 20.04.18 - 11:22
(0) читай, что в ответе приходит
   SeriyP
 
2 - 20.04.18 - 11:26
(1) Результат.Заголовки
Ключ    Значение
"Transfer-Encoding"    "chunked"
"date"    "Fri, 20 Apr 2018 11:23:42 GMT"
"allow"    "GET, HEAD"
"Content-Type"    "text/html; charset=UTF-8"
"Connection"    "keep-alive"
"Cache-Control"    "no-cache, private"
"X-Powered-By"    "PHP/7.1.14"
"Server"    "nginx/1.12.2"


В Результат.ПолучитьТелоКакСтроку() - html код. Вкратце:  "Whoops, looks like something went wrong".
   SeriyP
 
3 - 20.04.18 - 11:54
Идеи?
   SeriyP
 
4 - 20.04.18 - 14:39
up
   drei
 
5 - 20.04.18 - 15:39
(2) > "allow"    "GET, HEAD"
   SeriyP
 
6 - 20.04.18 - 15:43
(5) 405: Method Not Allowed
Выполнение метода, определенного в запросе, не разрешено для ресурса, идентифицированного конкретным адресом. Ответ должен содержать Allow заголовок, со списком разрешенных методов для запрашиваемого ресурса.

Не к тому ресурсу обращаюсь раз поддерживается только GET, HEAD?
   drei
 
7 - 20.04.18 - 15:53
(6) Прально. Урл должен включать параметры.
   SeriyP
 
8 - 20.04.18 - 16:09
(7) Делаю 
Запрос = Новый HTTPЗапрос("/api/1/ekf/catalog/files? vendorCode=mcb4763-1-01C-pro", Заголовки)
Результат тот же. что должно быть в теле запроса?
   Lexey_
 
9 - 20.04.18 - 16:16
(8)  Соединение.ОтправитьДляОбработки() или  Соединение.Получить() ?
   SeriyP
 
10 - 20.04.18 - 17:28
(9) Соединение.ОтправитьДляОбработки()
 
 Рекламное место пустует
   Lexey_
 
11 - 20.04.18 - 20:46
(10) get это Получить()
   Широкий
 
12 - 20.04.18 - 21:29
Там же ясно написано - через параметры ты должен передавать
Вот и пример есть:
URL: https://ekfgroup.com/api/1/ekf/catalog/files?id=0001cc0d-efa2-11e6-bd2e-000c29c6d5f2
   SeriyP
 
13 - 23.04.18 - 08:48
(12) А что в запросе-то писать?
   Широкий
 
14 - 23.04.18 - 09:13
Запрос = Новый HTTPЗапрос("/api/1/ekf/catalog/files?vendorCode=mcb4763-1-01C-pro", Заголовки);
Результат = Соединение.ОтправитьДляОбработки(Запрос);

Что то типа этого
   zva
 
15 - 23.04.18 - 09:17
(13) Запрос.УстановитьТелоИзСтроки("", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

Я бы еще попробовал APIKey в кавычках послать, а то из их документации не ясно: •API-KEY должен быть указан в HEADER каждого запроса в атрибуте Authorization. Запись вида: Bearer "ваш API-KEY".
Заголовки.Вставить("Authorization", "Bearer "+""""+APIKey+"""");

А лучше Postman поставить пробовать вызвать какой-нить метод
   Широкий
 
16 - 23.04.18 - 09:18
(15) Он уже передает
   SeriyP
 
17 - 23.04.18 - 09:25
(14) (15) Попробовал - результат тот же.

Соединение = Новый HTTPСоединение("ekfgroup.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Заголовки = Новый Соответствие;    
Заголовки.Вставить("Authorization", "Bearer "+""""+APIKey+"""");
Запрос = Новый HTTPЗапрос("/api/1/ekf/catalog/files?vendorCode=mcb4763-1-01C-pro", Заголовки);
Запрос.УстановитьТелоИзСтроки("", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Результат = Соединение.ОтправитьДляОбработки(Запрос);
   Lexey_
 
18 - 23.04.18 - 09:48
(17) см (11)
   SeriyP
 
19 - 23.04.18 - 09:53
(18) Поясните подробнее? На запрос типа GET возвращается ошибка 404. И разработчик пишет именно про POST
   SeriyP
 
20 - 23.04.18 - 09:55
(15) Попробовал через Postman поотправлять запросы. Результат тот же - ошибка 405.
   zva
 
21 - 23.04.18 - 10:01
а если Заголовки.Вставить("Content-Type", "application/json");

вообще, лучше разработчику написать
   Широкий
 
22 - 23.04.18 - 10:06
Пиши разрабам. Выплевывает HTML - значит в документации что то не клеится
   SeriyP
 
23 - 23.04.18 - 10:17
(22) мда, видать действительно что-то не стыкуется. Буду пробовать с разработчиком общаться.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует