1.
Гость
14.04.21 11:34
Может еще остались специалисты, или кто-нибудь помнит как на 8.1 HTTPСоединение отправляет на сервер сертификаты.
Попытка
ЗащищенноеСоединение = Истина;
Соединение = Новый HTTPСоединение(Сервер,Порт,,,ЗащищенноеСоединение); //Вылетает здесь, даже "Исключение" не срабатывает.
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json;charset=UTF-8");
Исключение
ошибка = ОписаниеОшибки();
Сообщить(ошибка);
КонецПопытки;
ПоказатьПо теме из базы знаний
- Переводчик Google для 1С 8.1
- Пример работы с заголовками HTTP-запросов: загрузка версий программ с users.v8.1c.ru
- 1c + vis js(web app timeline)
- Использование объекта "HTTPСоединение" для отправки и получения SMS сообщений через модем Huawei с прошивкой HiLink (Возможности на 8.3.11.3034)
- Обзор полезных методов БСП 3.1.4
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вопрос
как на 8.1 HTTPСоединение отправляет на сервер сертификаты?
**********************************************************************************
А в 8.1
Я и спрашиваю
как на 8.1 HTTPСоединение отправляет на сервер сертификаты?
как на 8.1 HTTPСоединение отправляет на сервер сертификаты?
**********************************************************************************
в 8.3 ВОТ ЭТО РАБОТАЕТ БЕЗ ПРОБЛЕМ
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
Новый СертификатыУдостоверяющихЦентровWindows());
порт = 12345;
Соединение = Новый HTTPСоединение(Сервер,порт ,,,,3,ЗащищенноеСоединение);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json;charset=UTF-8");
Запрос = Новый HTTPЗапрос(Сервис, Заголовки);
Запрос.УстановитьТелоИзСтроки(ЭтотОбъект.СтрокаЗапроса, КодировкаТекста.UTF8,
ИспользованиеByteOrderMark.НеИспользовать);
Ответ = Соединение.ВызватьHTTPМетод("PUT",Запрос);
ОтветЗаголовки = Ответ.Заголовки;
ОтветКод = Ответ.КодСостояния;
ОтветТело = Ответ.ПолучитьТелоКакСтроку();
ПоказатьА в 8.1
ЗащищенноеСоединение = Истина;
Я и спрашиваю
как на 8.1 HTTPСоединение отправляет на сервер сертификаты?
Это решение
Задача решена так
Процедура ЗапросКСевисуНаПлатформе1С8_1(Сервер,Сервис,СертификатИмя,ТипЗапроса,ТекстЗапроса)
WinHttpUTF8 = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttpUTF8.Option(2, "UTF-8");
WinHttpUTF8.SetClientCertificate(СертификатИмя);
WinHttpUTF8.SetTimeouts(10000, 10000, 30000, 30000);
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.Language = "javascript";
Скрипт.AddObject("WinHttp", WinHttpUTF8);
Скрипт.Eval("WinHttp.Option(2) = ""utf-8""");
Скрипт.Eval("WinHttp.Option(4) = 13056");
Скрипт.Eval("WinHttp.Option(6) = true");
Скрипт.Eval("WinHttp.Option(12) = true");
WinHttpUTF8.Open(ТипЗапроса, Сервер + Сервис, 0);
WinHttpUTF8.SetRequestHeader("Content-Type", "application/json;charset=UTF-8");
WinHttpUTF8.Send(ТекстЗапроса);
Ответ = WinHttpUTF8.ResponseText();
КонецПроцедуры
Процедура ЗапросКСевисуНаПлатформе1С8_1(Сервер,Сервис,СертификатИмя,ТипЗапроса,ТекстЗапроса)
WinHttpUTF8 = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttpUTF8.Option(2, "UTF-8");
WinHttpUTF8.SetClientCertificate(СертификатИмя);
WinHttpUTF8.SetTimeouts(10000, 10000, 30000, 30000);
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.Language = "javascript";
Скрипт.AddObject("WinHttp", WinHttpUTF8);
Скрипт.Eval("WinHttp.Option(2) = ""utf-8""");
Скрипт.Eval("WinHttp.Option(4) = 13056");
Скрипт.Eval("WinHttp.Option(6) = true");
Скрипт.Eval("WinHttp.Option(12) = true");
WinHttpUTF8.Open(ТипЗапроса, Сервер + Сервис, 0);
WinHttpUTF8.SetRequestHeader("Content-Type", "application/json;charset=UTF-8");
WinHttpUTF8.Send(ТекстЗапроса);
Ответ = WinHttpUTF8.ResponseText();
КонецПроцедуры
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот