Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 сен 2021, 17:08

htpps соединение с отправкой json

Автор Kerbert, 11 июн 2019, 09:57

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

Kerbert

Нужно поднять https соединение и отправить на него json.

WinHttp= СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"UTF-8");

WinHttp.Open("POST","https://*******:2443/documents/",0); 

WinHttp.SetClientCertificate("localhost");//Что-то в этом параметре

WinHttp.SetRequestHeader("Accept", "application/json");
WinHttp.SetRequestHeader("Content-Type", "application/json");
WinHttp.SetRequestHeader("Accept-Language", "UTF-8");

ТекстJson = "";
WinHttp.Send(ТекстJson);

Но при попытке отправить получаю ошибку:

WinHttp.WinHttpRequest: Для проверки подлинности клиента требуется сертификат

Как я понял проблема в этом параметре WinHttp.SetClientCertificate("localhost").

Может кто объяснит, что туда нужно вставить?

Сертификаты зарегистрированы на локального пользователя.


AIFrame

Функция СоздатьСоединение(АдресAPI, Порт) Экспорт
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
Соединение = Новый HTTPСоединение(АдресAPI, Порт,,,,5, ?(Порт = 443, ЗащищенноеСоединение, неопределено));

Возврат Соединение;
КонецФункции

Функция ПолучитьЗаголовок_POST(URL) Экспорт
Заголовок = Новый Соответствие();
    Заголовок.Вставить("POST " + URL + " HTTP/1.1");
Заголовок.Вставить("Content-Type", "application/x-www-form-urlencoded");
Возврат Заголовок;
КонецФункции

Функция ВыполнитьЗапрос(Соединение, URL, Заголовок, Тело = неопределено) Экспорт
Запрос = Новый HTTPЗапрос(URL, Заголовок);
Если Тело <> неопределено Тогда
Запрос.УстановитьТелоИзСтроки(Тело);
Возврат Соединение.ОтправитьДляОбработки(Запрос);
КонецЕсли;

Возврат Соединение.Получить(Запрос);
КонецФункции

Kerbert

Цитата: AIFrame от 11 июн 2019, 12:11
Функция СоздатьСоединение(АдресAPI, Порт) Экспорт
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
Соединение = Новый HTTPСоединение(АдресAPI, Порт,,,,5, ?(Порт = 443, ЗащищенноеСоединение, неопределено));

Возврат Соединение;
КонецФункции

Функция ПолучитьЗаголовок_POST(URL) Экспорт
Заголовок = Новый Соответствие();
    Заголовок.Вставить("POST " + URL + " HTTP/1.1");
Заголовок.Вставить("Content-Type", "application/x-www-form-urlencoded");
Возврат Заголовок;
КонецФункции

Функция ВыполнитьЗапрос(Соединение, URL, Заголовок, Тело = неопределено) Экспорт
Запрос = Новый HTTPЗапрос(URL, Заголовок);
Если Тело <> неопределено Тогда
Запрос.УстановитьТелоИзСтроки(Тело);
Возврат Соединение.ОтправитьДляОбработки(Запрос);
КонецЕсли;

Возврат Соединение.Получить(Запрос);
КонецФункции

Спасибо конечно, но ваш код не подходит в данной ситуации, т.к. он для 8 а не 7. Проблема как раз в реализации на 7.

AIFrame

А, сорян. Не обратил внимание.

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск