[Шпаргалка] Вычисление Content-Length в POST запросе на примере Битрикс 24

20.11.23

Интеграция - WEB-интеграция

Вычисление Content-Length в POST запросе на примере Битрикс 24. Информации про это в интернете мало, может, кому-то сэкономит время.

Добрый день.

Встала простая задача по restapi обратиться в битрикс и забрать оттуда данные по массиву id.

Дергаем ручку в Postmane - все ок.

 

 

Делаем Http post запрос из 1с - ответ 200, но пустой результат. Все дело в том что Postman умеет высчитывать Content-Length. В 1С его нужно высчитывать вручную, и передавать не серилизованный JSON в теле а файл. 

Ниже работающий пример:

       HTTPСоединение  = ПолучитьHTTPСоединение();
	   перЗапрос = "local/rest/1C/deal.php";
	   
		
		Структура = Новый Структура;
		Структура.Вставить("id", ИдСтрока);
	
		ЗаписьJSON = новый ЗаписьJSON();
		ЗаписьJSON.УстановитьСтроку();
		ЗаписатьJSON(ЗаписьJSON, Структура);
		
		ДанныеДляОтправкиJSON = ЗаписьJSON.Закрыть();  
		
		ФайлЗапроса = ПолучитьИмяВременногоФайла();
		ТекстовыйФайл = Новый ТекстовыйДокумент;
   		ТекстовыйФайл.УстановитьТекст(ДанныеДляОтправкиJSON);          
   		ТекстовыйФайл.Записать(ФайлЗапроса, КодировкаТекста.ANSI); 
		
		ФайлОтправки = Новый Файл(ФайлЗапроса);
   		РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());

       	Заголовки = Новый Соответствие;
		Заголовки.Вставить("Content-Type", "text/plain;charset=UTF-8");  
		Заголовки.Вставить("Content-Length", РазмерФайлаОтправки); 

		HTTPЗапрос = Новый HTTPЗапрос(перЗапрос, Заголовки);

		
		HTTPЗапрос.УстановитьИмяФайлаТела(ФайлЗапроса);
		
		HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
		
		СтрокаJSON = HTTPОтвет.ПолучитьТелоКакСтроку(); 
	
		ЧтениеJSON = Новый ЧтениеJSON();
		ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
		 
		перМассив = ПрочитатьJSON(ЧтениеJSON);

 

См. также

WEB-интеграция Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

72000 руб.

19.07.2024    893    1    0    

2

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13837    39    8    

15

WEB-интеграция Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    17479    47    49    

28

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17297    16    20    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. efin 20.11.23 15:10 Сейчас в теме
Отлично все 1С умеет высчитывать сам и указывать в заголовке.
А вот если применять таблетки, особенно подмену inet.dll - то перестает высчитывать, как пишут на форумах.
user621724_Dimav1979; +1 Ответить
2. user621724_Dimav1979 409 20.11.23 15:55 Сейчас в теме
(1) подменами inet.dll не занимаемся )))
Оставьте свое сообщение