Приветствую.
Разбираюсь сейчас в программной авторизации из 1С в GitLab. Нашел интересный метод, реализованный при помощи curl + perl здесь. Но на данный момент есть нюанс. Не понимаю как передать параметры curl -data и --data-urlencoded в одном http-запросе.
Имеем команду curl с параметрами:

```1c
    curl -b cookies.txt -c cookies.txt -i "${gitlab_host}/users/sign_in" \
    --data "user[login]=${gitlab_user}&user[password]=${gitlab_password}" \
    --data-urlencode "authenticity_token=${csrf_token}"
```

Тут передаются куки из прошлого запроса (передаем в заголовке HTTP-запроса 1С) и значения данных, которые в теории надо передавать в теле запроса, то есть через УстановитьТелоИзСтроки(). Прошу подсказать, если кто-то сталкивался - каким образом передать значения параметра curl --data-urlencoded в HTTP-запросе 1С. Плюс непонятно - передавать логин и пароль пользователя в открытом, незашифрованном виде в теле запроса или в заголовке запроса, но в закодированном виде Base64. Ну и самое главное - как одновременно передать логин, пароль и токен.
---
HTTPЗапросе данные сразу и как data, и как data-urlencodedВсе в дата.
---
Согласно Postman, если используем заголовок x-www-form-urlencoded, это соответствует передаче значений через параметр --data-urlencoded, или в случае http-запроса 1С УстановитьТелоИзСтроки().
Если же установить заголовок raw, то запрос начнет передавать значения параметра curl --data в виде обычного текста. В этом обсуждении коллега спрашивал, как заставить 1С передавать именно значения параметра --data-urlencode вместо --data, и ему подсказали как раз про УстановитьТелоИзСтроки(). В моем же случае получается, что в алгоритме авторизации к GitLab необходимо в одном из последовательных запросов передавать значения сразу с двумя параметрами.
---
Согласно PostmanТот же postman вполне умеет показывать сниппет для http, из которого предельно ясно, что идет в заголовки, что в тело, а что в url и в какой кодировке.

Но, если ты хочешь стоя и в гамаке, то у curl есть своя подробная документация. См, например, https://curl.se/docs/manpage.html#-d
---
Тот же postman вполне умеет показывать сниппет для http, из которого предельно ясно, что идет в заголовки, что в тело, а что в url и в какой кодировке.полностью согласен, в (2) как раз и прикрепил скрины содержимого этих сниппетов. Дело все в том, что если curl может передавать в одном запросе сразу и --data и --data-urlencode, то как это сделать в Postman, и уж тем более в HTTPЗапрос пока не нашел. Об этом и тема.
---
прикрепил скрины содержимого этих сниппетов
---
Понял, о чем Вы говорите. Но вопрос остался открытым: HTTPЗапрос 1C в заголовке может содержать оба типа Content-Type? И как в таком случае ему указать какая часть тела запроса должна идти как Text, а какая - как urlencoded?
---
Нет, и 1С тут не при чем. В одном запросе заголовок типа тела распространяется на всё тело. Поэтому у тебя всё будет урленкодед. Постман тебе это и показывает.

Давно бы уже попробовал отправить запрос из того же постмана...
---
Уже много раз попробовал. Поэтому сюда и пришел за советом. Для программной авторизации в GitLab мне необходимо, аналогично curl, отправить из 1С в HTTPЗапросе данные сразу и как data, и как data-urlencoded.
---
HTTPЗапросе данные сразу и как data, и как data-urlencodedВсе в дата.
---
В таком случае, насколько я понимаю, HTTP запросом из 1С не получится отправить данные в требуемом формате, чтобы GitLab их принял на странице LDAP авторизации? Мне необходимо работать с GitLab не по API, а именно авторизовавшись через LDAP...
---
авторизовавшись через LDAPВот это вот сейчас вообще внезапно было.
Я, пожалуй, теперь просто посижу рядом и почитаю - что же на это ответят?
---
Почему же внезапная? В шапке темы указал, что "разбираюсь с программной авторизацией в GitLab". Сервер GitLab у заказчика развернут, когда я захожу через браузер первое, что вижу - это страница LDAP авторизации. В (10) говорю именно про нее. Когда производится первый программный (цель: получить страницу с изменениями коммита и загрузить ее в поле HTML документа на форму) запрос страницы изменений GitLab в формате https://gitlab.com/.../-/commit/0f37fd6a23.....e78178599562ea090b71d4fe0 ответ перенаправляет на страницу авторизации, куда (по всей видимости) необходимо отправить запрос с использованием cookie и csrf-токена. В виде последовательности curl-запросов реализация есть, теперь пробую адаптировать ее для 1С.
---
В итоге пришел к следующему.
1. Два последовательных запроса обеспечивают авторизацию - токен безопасности и куки прилагаются в соответствующем составе;
2. Третий запрос должен получить непосредственно страницу HTML из репозитория, к которому идет запрос и при помощи ПолучитьТелоКакСтроку() отдать текст HTML в поле HTML-документа, размещенное на УФ.
По факту все так и происходит, но в поле HTML-документа отображается только панель меню GitLab слева, содержимое страницы не отображается, хотя тело ответа на запрос содержит полны текст HTML-страницы репозитория (в конфигураторе это видно). Теперь разбираюсь с этим этапом.