Имя: Пароль:
1C
1С v8
Запрос по API без BOM, платформа 8.2.19.130
0 Румата
 
05.02.24
14:57
Добрый день, пробую отправить запрос по API на платформе 8.2.19.130. Тот же самый запрос для платформы 8.3 отличается одной строкой :
Вместо строки :
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса, "CESU-8");

на 8.3 код такой :
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);


Вот полный код на 8.2 :

ssl = Новый ЗащищенноеСоединениеOpenSSL;
	HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,,,,,ssl);
	Запрос = СтруктураURI.ПутьНаСервере;
	ApiKey = OZONE_ApiKey; 
	HTTPЗапрос = Новый HTTPЗапрос(Запрос);
	HTTPЗапрос.Заголовки["Client-Id"] = OZONE_client_id;
	HTTPЗапрос.Заголовки["Api-Key"] = OZONE_ApiKey;	
	HTTPЗапрос.Заголовки["Content-Type"] = "application/json";	
	HTTPЗапрос.Заголовки["Host"] = OZONE_Host;
	МассивТоваров = "";	
	ТелоЗапроса = "{}";   
	HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса, "CESU-8");
	
	Попытка
		HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	Исключение
		Возврат;
	КонецПопытки;	
	
	Ответ = HTTPОтвет.ПолучитьТелоКакСтроку("UTF-8");


При попытке вызывается исключение, причем HTTPОтвет = Неопределено, куда копать, помогите ?
1 Garykom
 
05.02.24
15:00
УстановитьИмяФайлаТела используй
Файл предварительно пиши какой надо
2 Garykom
 
05.02.24
15:02
Еще учти чтобы работал ssl на ОСи должны быть свежие серты
3 Румата
 
05.02.24
15:26
(1) Попробовал записать пустой файл и УстановитьИмяФайлаТела.
Результат тот же, идет в исключение, при попытке, HTTPОтвет = Неопределено
4 Румата
 
05.02.24
16:11
(1) Вот так написал :

        ФСТ = ПолучитьИмяВременногоФайла();
    ИмяФайлаЗапроса = Новый ЗаписьТекста(ФСТ,"CESU-8");
    ИмяФайлаЗапроса.Закрыть();
    HTTPЗапрос.УстановитьИмяФайлаТела(ФСТ);

        Попытка
        HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Исключение
        Возврат;
    КонецПопытки;
5 Галахад
 
05.02.24
16:14
А если убрать попытку, не выведет более информативную ошибку?
6 Румата
 
05.02.24
16:17
(5) Ошибка при вызове метода контекста (ОтправитьДляОбработки)
        HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
по причине:
Ошибка работы с Интернет:  SSL connect error
7 Garykom
 
05.02.24
16:26
Угу.
Сейчас выяснится что винда ~2008.
Да еще и дата/время на сервере сбиты.
8 Garykom
 
05.02.24
16:27
Есть два варианта
1. stunnel
или
2. новая винда и новая платформа 1С заодно в режиме совместимости
9 ProxyInspector
 
05.02.24
19:41
А может быть ОЗОН выпустил свой SSL сертификат. Тогда там все по другому надо.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший