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

1С:Предприятие :: 1С:Предприятие 8 общая

POST запрос в 1С

POST запрос в 1С
Я
   Pat4kord
 
13.07.18 - 11:08
Добрый день, коллеги!

Подскажите пожалуйста, доводилось ли кому-нибудь отправлять POST- запросы с несколькими параметрами от 1С к Web серверу.

Если есть приведите листинг кода где происходит отправка нескольких параметров, например login строка, пароль строка и файл xml, ну или что-то близкое к этому.
 
 
   Андрюха
 
1 - 13.07.18 - 11:09
   Pat4kord
 
2 - 13.07.18 - 12:27
Ух ты, какой ты умничка, спасибо большое я сам никогда бы не догадался.

А если серьёзно там нет примеров которые я описал.
   zippygrill
 
3 - 13.07.18 - 12:30
В теле передай параметры
   zippygrill
 
4 - 13.07.18 - 12:31
вот в теле
ПараметрыЗапроса.ТелоКакСтрока = "grant_type=password&username=" + ПараметрыЗапроса.username + "&password=" + ПараметрыЗапроса.password

вот в адресе
ПараметрыЗапроса.АдресЗапроса = "/api/WorkshopWorkflow/GetWorkshopWorkflowChanges?lastSyncDateTime=" + ДатаВремяПолученияИзменений
   Pat4kord
 
5 - 13.07.18 - 12:33
Я понимаю что параметры нужно передать в теле и в принципе всё хорошо когда 2 параметра, это 2 строки.

А как быть если первый параметр это строка, а второй это xml файл который я должен отправить для обработки?
   Borteg
 
6 - 13.07.18 - 12:37
(5) логин и пароль наверное в заголовках передается, есть же наверное описание сервиса?
   novichok79
 
7 - 13.07.18 - 12:37
Соединение = РезультатСоединенияСAmoCRM.Соединение;
    БылиОшибкиПриПодключенииКAmoCRM = РезультатСоединенияСAmoCRM.БылиОшибкиПриПодключенииКAmoCRM;
    ОписаниеОшибки = РезультатСоединенияСAmoCRM.ОписаниеОшибки;

    Если Соединение = Неопределено Тогда 

        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
        СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
        НСтр("ru = 'При подключении к AmoCRM произошла ошибка:
              |%1'"), ОписаниеОшибки));

    Иначе 

        АдресСкрипта = "/private/api/auth.php?type=json";
        HTTPЗапрос = Новый HTTPЗапрос(АдресСкрипта);
        
        HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
        HTTPЗапрос.Заголовки.Вставить("Accept-Language", "ru");        
        HTTPЗапрос.Заголовки.Вставить("Accept-Charset", "utf-8");
        HTTPЗапрос.Заголовки.Вставить("Content-Language", "ru");
        HTTPЗапрос.Заголовки.Вставить("Content-Charset", "utf-8");
        HTTPЗапрос.Заголовки.Вставить("User-Agent", "amoCRM-API-client/1.0");

        HTTPЗапрос.УстановитьТелоИзСтроки(
        "USER_LOGIN=" + Объект.ЛогинПользователя + 
        "&USER_HASH=" + Объект.КлючПользователя,
        КодировкаТекста.UTF8, ИспользованиеByteOrderMark.Авто);
        
        БылиОшибкиПриОтправкеHTTPЗапроса = Ложь;
        БылиОшибкиПриРасшифровкеHTTPОтвета = Ложь;
        
        Попытка

            HTTPОтветСервера = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
            
        Исключение

            БылиОшибкиПриОтправкеHTTPЗапроса = Истина;
            
            ИнформацияОбОшибке = ПолучитьИнформациюОбОшибке(ИнформацияОбОшибке());
            ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);

            ТекстСообщения = 
            СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru = 'При авторизации в AmoCRM произошла ошибка:
            |%1'"), ОписаниеОшибки);

            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , , , БылиОшибкиПриОтправкеHTTPЗапроса);

            ЗаписьЖурналаРегистрации(
            НСтр("ru = 'Обмен с AmoCRM. Авторизация пользователя на сервере'", КодОсновногоЯзыка),
            УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));

        КонецПопытки;
   Pat4kord
 
8 - 13.07.18 - 12:40
Спасибо.

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