19 марта, 2024

POST запрос с базовой авторизацией

Для выполнения запроса с базовой авторизацией требуется в заголовках запроса передать логин и пароль пользователя в виде строки, кодированной в Base64. В 1С 8.3 формирование заголовков, запроса и кодирование Base64 легко осуществляются встроенными средствами.

Для кодирования используются функции ПолучитьBase64СтрокуИзДвоичныхДанных и ПолучитьДвоичныеДанныеИзСтроки, строка с данными авторизации это имя и пароль через двоеточие «:».

Непосредственно POST запрос выполняется методом ОтправитьДляОбработки.

Ниже пример кода.

АдресСервера = "www.server.com";
Ресурс = "/api/endpoint";
ИмяПользователя = "user";
Пароль = "password";

СтрокаАвторизации = ПолучитьBase64СтрокуИзДвоичныхДанных(
ПолучитьДвоичныеДанныеИзСтроки(
""+ИмяПользователя+":"+Пароль,КодировкаТекста.UTF8,Ложь));

SSL = Новый ЗащищенноеСоединениеOpenSSL;

Соединение = Новый HTTPСоединение(АдресСервера,443,,,,,SSL);

Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json; charset=utf-8"); 
Заголовки.Вставить("Authorization", "Basic "+СтрокаАвторизации); 

Запрос = Новый HTTPЗапрос(Ресурс,Заголовки);
Запрос.УстановитьТелоИзСтроки(СтрокаJSON);

ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();

Ответ = Соединение.ОтправитьДляОбработки(Запрос,ИмяФайлаОтвета);

Статус ответа веб-сервера можно прочитать в свойстве Ответ.КодСтатуса, если сервер возвращает какие-то данные, их можно прочитать из временного файла, его имя в переменной ИмяФайлаОтвета.