Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

HTTP получение токена для API

HTTP получение токена для API
Я
   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);
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку();
    Сообщить(ОтветВВидеСтроки);
    Сообщить(Ответ.КодСостояния);
   Kassern
 
1 - 24.04.21 - 13:26
(0) чет бред какой-то. А точно POST запрос нужен? Ты ж в теле ничего кроме пары параметров не передаешь.
   Kassern
 
2 - 24.04.21 - 13:27
(0) вангую, что нужно обычный гет запрос Объект.Адрес+"/en/api/v1/login/"+&phone_number="+Объект.логин+"&password="+Объект.пароль. Что в APIшке сказано?
   bagu_muslim
 
3 - 24.04.21 - 13:33
(2) Не особо опытен в данном вопросе , но вот адрес API https://stubla.com/en/api/v1/login/
   acht
 
4 - 24.04.21 - 13:35
(0) BOM из тела убери
   bagu_muslim
 
5 - 24.04.21 - 13:36
(4) Пробовал задать параметр "не использовать" результат тот же
   acht
 
6 - 24.04.21 - 13:39
(5) и первый амперсенд из строки параметров убери
   Kassern
 
7 - 24.04.21 - 13:40
(5) Попробуй поменять заголовок на application/json и передавать в теле:
{
    "phone_number": ТвойНомер,
    "password": ТвойПароль
}
   bagu_muslim
 
8 - 24.04.21 - 13:46
(7) код ошибки 400 текст {"detail":"JSON parse error - Expecting value: line 1 column 23 (char 22)"}
   bagu_muslim
 
9 - 24.04.21 - 13:47
(7) Извиняюсь за туповатый вопрос а в json файле передать в тело или тип строка пойдет?
   Kassern
 
10 - 24.04.21 - 13:55
(9)
        ЗаписьJSON=Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписьJSON.ЗаписатьНачалоОбъекта();
        ЗаписьJSON.ЗаписатьИмяСвойства("phone_number");
    ЗаписьJSON.ЗаписатьЗначение(ТвойНомер);
    ЗаписьJSON.ЗаписатьИмяСвойства("password");
        ЗаписьJSON.ЗаписатьЗначение(ТвойПароль);
        ЗаписьJSON.ЗаписатьКонецОбъекта();
        Результат=ЗаписьJSON.Закрыть();
    Запрос.УстановитьТелоИзСтроки(Результат);
   bagu_muslim
 
11 - 24.04.21 - 13:58
(10) Вы просто гений , спасибо большое . Заработало!!! Целый день мучался, теперь буду знать .
   Kassern
 
12 - 24.04.21 - 13:59
(10) по красивому лучше конечно структуру заполнять, а потом через ЗаписатьJSON передать ее. Тогда меньше кода будет и выглядеть красивее.
   bagu_muslim
 
13 - 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Ответ.КодСостояния);
    Сообщить(ОтветВВидеСтроки);
   bagu_muslim
 
14 - 25.04.21 - 03:27
(13) Кстати и также принципиально отправлять туда файл xml.

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