|
HTTP получение токена для API | ☑ | ||
---|---|---|---|---|
0
bagu_muslim
24.04.21
✎
13:18
|
Доброго времени суток коллеги пробую получить токен через http соединение , в теле запроса передаю логин и пароль , логин и пароль принимается но в ответ приходит код 401 и сообщение что такого активного пользователя нет. Через Postman все проходит без проблем , у кого какие идеи будут?
SSL=Новый ЗащищенноеСоединениеOpenSSL; Соединение = Новый HTTPСоединение(Объект.Адрес,,,,,,SSL); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос = Новый HTTPЗапрос("/en/api/v1/login/",ЗаголовокHTTP); Запрос.УстановитьТелоИзСтроки("&phone_number="+Объект.логин+"&password="+Объект.пароль,КодировкаТекста.UTF8); Ответ = Соединение.ОтправитьДляОбработки(Запрос); ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку(); Сообщить(ОтветВВидеСтроки); Сообщить(Ответ.КодСостояния); |
|||
1
Kassern
24.04.21
✎
13:26
|
(0) чет бред какой-то. А точно POST запрос нужен? Ты ж в теле ничего кроме пары параметров не передаешь.
|
|||
2
Kassern
24.04.21
✎
13:27
|
(0) вангую, что нужно обычный гет запрос Объект.Адрес+"/en/api/v1/login/"+&phone_number="+Объект.логин+"&password="+Объект.пароль. Что в APIшке сказано?
|
|||
3
bagu_muslim
24.04.21
✎
13:33
|
(2) Не особо опытен в данном вопросе , но вот адрес API https://stubla.com/en/api/v1/login/
|
|||
4
acht
24.04.21
✎
13:35
|
(0) BOM из тела убери
|
|||
5
bagu_muslim
24.04.21
✎
13:36
|
(4) Пробовал задать параметр "не использовать" результат тот же
|
|||
6
acht
24.04.21
✎
13:39
|
(5) и первый амперсенд из строки параметров убери
|
|||
7
Kassern
24.04.21
✎
13:40
|
(5) Попробуй поменять заголовок на application/json и передавать в теле:
{ "phone_number": ТвойНомер, "password": ТвойПароль } |
|||
8
bagu_muslim
24.04.21
✎
13:46
|
(7) код ошибки 400 текст {"detail":"JSON parse error - Expecting value: line 1 column 23 (char 22)"}
|
|||
9
bagu_muslim
24.04.21
✎
13:47
|
(7) Извиняюсь за туповатый вопрос а в json файле передать в тело или тип строка пойдет?
|
|||
10
Kassern
24.04.21
✎
13:55
|
(9)
ЗаписьJSON=Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписьJSON.ЗаписатьНачалоОбъекта(); ЗаписьJSON.ЗаписатьИмяСвойства("phone_number"); ЗаписьJSON.ЗаписатьЗначение(ТвойНомер); ЗаписьJSON.ЗаписатьИмяСвойства("password"); ЗаписьJSON.ЗаписатьЗначение(ТвойПароль); ЗаписьJSON.ЗаписатьКонецОбъекта(); Результат=ЗаписьJSON.Закрыть(); Запрос.УстановитьТелоИзСтроки(Результат); |
|||
11
bagu_muslim
24.04.21
✎
13:58
|
(10) Вы просто гений , спасибо большое . Заработало!!! Целый день мучался, теперь буду знать .
|
|||
12
Kassern
24.04.21
✎
13:59
|
(10) по красивому лучше конечно структуру заполнять, а потом через ЗаписатьJSON передать ее. Тогда меньше кода будет и выглядеть красивее.
|
|||
13
bagu_muslim
25.04.21
✎
03:21
|
(12) Гуру Kassern еще один вопрос по поводу HTML пытаюсь отправить файл и вылетает следующая ошибка ошибка " {"detail":"JSON parse error - Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)"}" код ошибки 400 Код приведен ниже.
SSL=Новый ЗащищенноеСоединениеOpenSSL; Соединение = Новый HTTPСоединение(Объект.Адрес,,,,,,SSL); ЗаголовокHTTP = Новый Соответствие(); //Заголовки.Вставить("Host",Объект.Адрес); ЗаголовокHTTP.Вставить("Content-Type", "application/json;charset=utf-8"); // пробовал менять контент тайп там еще гуще ошибки вылетают ЗаголовокHTTP.Вставить("Authorization","Bearer "+Токен); хмл=ПолучитьФайлXML(); хмл=СформироватьXML(хмл); HTTPЗапрос = Новый HTTPЗапрос("/en/api/v1/shops/update-products-*****/",ЗаголовокHTTP); HTTPЗапрос.УстановитьИмяФайлаТела(хмл); HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); ОтветВВидеСтроки = HTTPОтвет.ПолучитьТелоКакСтроку(); Сообщить(HTTPОтвет.КодСостояния); Сообщить(ОтветВВидеСтроки); |
|||
14
bagu_muslim
25.04.21
✎
03:27
|
(13) Кстати и также принципиально отправлять туда файл xml.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |