Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
01 июл 2024, 09:26

1C отправка PUT запроса в формате JSON

Автор receiver, 15 сен 2018, 10:46

0 Пользователей и 1 гость просматривают эту тему.

receiver

Добрый день.
Столкнулся с проблемой отправки PUT запроса из 1С (8.3.10.2667) с полезными данными JSON, GET и POST запросы работают корректно, все считывается и отправляется. При отправке PUT почему то пустой запрос. Вот код:

     ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
          ИмяФайлаЗапроса    = ПолучитьИмяВременногоФайла();
      
     ЗаписьJSON = Новый ЗаписьJSON;
           ЗаписьJSON.ОткрытьФайл(ИмяФайлаЗапроса);                  
     СтуктураОперации = Новый Структура;

     СтуктураОперации.Вставить("type_id", 0);
     СтуктураОперации.Вставить("name", РазбитьФИО(документ.заказчик,2));
     СтуктураОперации.Вставить("last_name", РазбитьФИО(документ.заказчик,1));
     СтуктураОперации.Вставить("middle_name", РазбитьФИО(документ.заказчик,3));

     ЗаписатьJSON(ЗаписьJSON, СтуктураОперации);
     ЗаписьJSON.Закрыть();     
     ФайлОтправки = Новый Файл(ИмяФайлаЗапроса);
     РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());

          ИмяСервера = "мой сервер";
     URL = "/client";
            
     ЗаголовокHTTP = Новый Соответствие;
           ЗаголовокHTTP.Вставить("Host", ИмяСервера);
           ЗаголовокHTTP.Вставить("Connection", "Keep-Alive");
           ЗаголовокHTTP.Вставить("Accept", "application/json");
           ЗаголовокHTTP.Вставить("Authorization", "Мой токен");
           ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаОтправки);
          ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=utf-8");    

      
     Соединение = Новый HTTPСоединение(ИмяСервера,,,,,,Новый                     

ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(),Новый                     

СертификатыУдостоверяющихЦентровWindows()));       

          ЗапросHTTP = Новый HTTPЗапрос(URL, ЗаголовокHTTP);         
     ЗапросHTTP.УстановитьИмяФайлаТела(ИмяФайлаЗапроса);         
     Ответ = Соединение.Записать(ЗапросHTTP);   


Вот что видно отправляется через снифер на сайт на самом деле:
PUT /client HTTP/1.1
Host: -----
User-Agent: 1C+Enterprise/8.3
Authorization: "мой токен"
Content-Type: application/json; charset=utf-8
Connection: Keep-Alive
Accept: application/json
Expect: 100-continue
Content-Length: 0



А вот что должно (по примеру POST) который работает исправно через Соединение.ОтправитьДляОбработки(ИмяФайлаЗапроса, URL, ИмяФайлаОтвета, ЗаголовокHTTP)

К тому же почему то приписывается заголовок Expect: 100-continue...

POST /client HTTP/1.1
Host: -----
User-Agent: 1C+Enterprise/8.3
Authorization: "мой токен"
Content-Type: application/json; charset=utf-8
Connection: Keep-Alive
Accept: application/json
Content-Length: 247

{
"type_id": 1,
"name": "Николай",
"last_name": "Сверидонов",
"middle_name": "Р'аленС,РёРЅРѕРІРёС‡",
}


Помогите разобраться.


Теги: Json PUT 

Похожие темы (3)

Рейтинг@Mail.ru

Поиск