Помогите кто может.
через веб ресурс swagger выполняется запрос:
curl -X POST "https://api-test-bridge.alfabank.by:8036/api/Account/postCreds" -H "accept: application/json" -H "Content-Type: application/json-patch+json" -d "{ \"login\": \"МойЛогин\", \"password\": \"МойПароль\", \"partnerCode\": \"0160\"}"

этот запрос возвращает accessToken

Пытаюсь повторить этот запрос в 1с , делаю так:

```1c
    ИмяСервера = "api-test-bridge.alfabank.by";
    Порт = 8036;
    ssl1 = Новый ЗащищенноеСоединениеOpenSSL();
    HTTP = Новый HTTPСоединение(ИмяСервера,Порт,,,,,ssl1);
    Структура = Новый Структура;
    Структура.Вставить("login", "МойЛогин");
    Структура.Вставить("password", "МойПароль");
    Структура.Вставить("partnerCode", "0160");

    ЗаписьJSON1 = Новый ЗаписьJSON;
    ЗаписьJSON1.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON1,Структура);

    ПараметрыPOST = ЗаписьJSON1.Закрыть();
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("accept", "application/json");
    ЗаголовокHTTP.Вставить("Content-Type", "application/json-patch+json");
    РесурсНаСервере = "https://api-test-bridge.alfabank.by:8036/api/Account/postCreds"; //
    HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере);
    HTTPЗапрос.Заголовки.Вставить(ЗаголовокHTTP);
    HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыPOST);
    Результат = HTTP.Получить(HTTPЗапрос);
```

Результат.КодСостояния = 200
а ответ сервера такой:
много текстаNotSupportedException: The given path's format is not supported.
StackTrace:
   at System.IO.Path.GetFullPath(String path)
   at System.IO.DirectoryInfo..ctor(String path)
   at ServiceStack.VirtualPath.FileSystemVirtualDirectory.EnumerateDirectories(String dirName)
   at ServiceStack.VirtualPath.FileSystemVirtualDirectory.GetDirectoryFromBackingDirectoryOrDefault(String dName)
   at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.GetFile(Stack`1 virtualPath)
   at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.GetFile(String virtualPath)
   at ServiceStack.VirtualPath.AbstractVirtualPathProviderBase.GetFile(String virtualPath)
   at ServiceStack.IO.MultiVirtualFiles.<>c__DisplayClass15_0.<GetFile>b__0(IVirtualPathProvider childProvider)
   at System.Linq.Enumerable.SelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
   at ServiceStack.IO.MultiVirtualFiles.GetFile(String virtualPath)
   at ServiceStack.Host.NetCore.NetCoreRequest.GetFile()
   at ServiceStack.Host.NetCore.NetCoreRequest.get_IsFile()
   at ServiceStack.RequestExtensions.IsFile(IRequest request)
   at ServiceStack.HttpHandlerFactory.GetHandlerForPathInfo(IHttpRequest httpReq, String filePath)
   at ServiceStack.HttpHandlerFactory.GetHandler(IHttpRequest httpReq)
   at ServiceStack.AppHostBase.<ProcessRequest>d__11.MoveNext()

никак не могу найти ошибку - что я делаю не так?
---
много разных ошибок.
пробуйте так:

```1c
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("accept", "application/json");
    ЗаголовокHTTP.Вставить("Content-Type", "application/json-patch+json");
    РесурсНаСервере = "/api/Account/postCreds"; //
    HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовокHTTP);
    HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыPOST);
    Результат = HTTP.ОтправитьДляОбработки(HTTPЗапрос);
```
---
Смотрю сюда https://infostart.ru/1c/articles/533754/ и вижу для POST запроса немного другой код: HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Вот уж действительно порой проще воспользоваться внешним wget, curl или даже запустить целый IE через COM-соединение, чем собирать каждый раз вручную длинные "велосипеды" из функций) Не советую эти способы, конечно
---
HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере);
        HTTPЗапрос.Заголовки.Вставить(ЗаголовокHTTP);

Помимо (2) еще надо это переделать.

```1c
    HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере,ЗаголовокHTTP);
```
---
HTTP.Получить(HTTPЗапрос);
Это GET, а нужно POST.
ОтправитьДляОбработки

РесурсНаСервере = "https://api-test-bridge.alfabank.by:8036/api/Account/postCreds";
ресурс должен быть:
РесурсНаСервере = "api/Account/postCreds";
---
вот заголовки:
        ЗаголовокHTTP = Новый Соответствие();
        ЗаголовокHTTP.Вставить("accept", "application/json");
        ЗаголовокHTTP.Вставить("Content-Type", "application/json-patch+json");
а какие еще должны быть? в примере только 2 заголовка.
---
HTTPЗапрос.Заголовки.Вставить(ЗаголовокHTTP);
Этот метод позволяет вставлять единичный ключ-значение. А не соответствие.
Т.е. или отдельно каждый заголовок отдельно, или соответствие передавать в конструктор httpзапрос.
---
и так пробовал:
HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере);
HTTPЗапрос.Заголовки.Вставить(ЗаголовокHTTP);
и так:
HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере,ЗаголовокHTTP);
---
много разных ошибок.
пробуйте так:

```1c
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("accept", "application/json");
    ЗаголовокHTTP.Вставить("Content-Type", "application/json-patch+json");
    РесурсНаСервере = "/api/Account/postCreds"; //
    HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовокHTTP);
    HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыPOST);
    Результат = HTTP.ОтправитьДляОбработки(HTTPЗапрос);
```
---
ЗаголовокHTTP = Новый Соответствие();
        ЗаголовокHTTP.Вставить("accept", "application/json");
        ЗаголовокHTTP.Вставить("Content-Type", "application/json-patch+json");
        РесурсНаСервере = "/api/Account/postCreds"; //
        HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовокHTTP);
        HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыPOST);
        Результат = HTTP.ОтправитьДляОбработки(HTTPЗапрос);
вситавил в свой код и получил вот что :
КодСостояния 500
и тело письма, которое я записал в файл
---
вот, на передаваемый формат перестал ругаться.
Теперь уже внутренняя ошибка asp.net
Вместо объекта получается null.
Тут уже сложнее и надо смотреть на стороне сервера.

Вот это меня смущает:
ЗаголовокHTTP.Вставить("accept", "application/json");
ЗаголовокHTTP.Вставить("Content-Type", "application/json-patch+json");

1С еще и сама заголовки вставляет.
Попробуйте все же, вместо кода выше, так:

```1c
    ЗаголовокHTTP.Вставить("Content-Type", "application/json");
```
---
исправил - ничего не изменилось
отправил полученные данные от сервера разрабам банка - жду ответа
---
Попробуй для начала так:

```1c
    РесурсНаСервере = "/api/Account/postCreds";
```
---
пробовал
Результат.КодСостояния 404
---
Пробовали убрать порт 8036 из РесурсНаСервере = "https://api-test-bridge.alfabank.by:8036/api/Account/postCreds"; ? Вроде как он у Вас уже в соединении прописан
---
Убрал порт . Код состояния 200 - тело письма тоже самое как в первом посте: NotSupportedException: The given path's format is not supported......
---
Смотрю сюда https://infostart.ru/1c/articles/533754/ и вижу для POST запроса немного другой код: HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

Вот уж действительно порой проще воспользоваться внешним wget, curl или даже запустить целый IE через COM-соединение, чем собирать каждый раз вручную длинные "велосипеды" из функций) Не советую эти способы, конечно
---
и так пробовал - разницы никакой
---
Тогда остается поставить какой-нибудь анализатор трафика или дампер и посмотреть, что реально отправляет 1С на сервер
---
Вот, как вариант, поищите в интернете.
Postman Echo
Получите то, что отправили.
А сам обычно порт tcp открываю и смотрю что приходит в случае использования разных клиентов.
---
Документацию API читать надо, по этому пути может быть и GET/POST
запрос отправляете GET и при этом суете туда body request
Совершенно не корректно
---
не понял - где у меня Get - запрос?
---
Результат = HTTP.Получить(HTTPЗапрос); - последняя строчка Вашего кода

crl-F1:
HTTPСоединение (HTTPConnection)
Получить (Get)
Синтаксис:
Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>)
Параметры:
<HTTPЗапрос> (обязательный)
Тип: HTTPЗапрос.
HTTP-запрос.
<ИмяВыходногоФайла> (необязательный)
Тип: Строка.
Имя файла, в который помещаются данные полученного ресурса. Если не указан или содержит пустую строку, то тело ответа может быть получено из объекта HTTPОтвет.
Возвращаемое значение:
Тип: HTTPОтвет.
Описание:
Получает данные с HTTP-сервера, используя GET-запрос.
---
Вот Вам пример POST из жизни:

```1c
    Function SendRequestForProcessing(StructuredData) Export

    recordJSON = New JSONWriter;
    recordJSON.SetString();
    XDTOSerializer.WriteJSON(recordJSON, StructuredData.sendstring, XMLTypeAssignment.Explicit);
    RequestString = recordJSON.Close();

    StructuredConnection = GetAuthorizationData(StructuredData.ReceptionBase);

    connection = New HTTPConnection(StructuredConnection.Server,,StructuredConnection.LOGIN, StructuredConnection.PASS);

    request = New HTTPRequest();

    request.ResourceAddress = StructuredData.ResourceAddress;
    request.Headers.Insert("Content-type", "application/json; charset=utf-8");
    request.Headers.Insert("User-Agent", "1C+Enterprise/8.3");
    request.SetBodyFromString(RequestString, TextEncoding.UTF8, ByteOrderMarkUse.DontUse);

    result = connection.Post(request);
    return result;

    EndFunction
```
---
Всем Спасибо за помощь.
В результате получился запрос, который вроде как правильно сделан, но сервер банка его не переваривает. Сервер возвращает: Код 500.
Время поджимает, поэтому пришлось воспользоваться утилитой Сurl.exe
---
окончательно нашел решение . помогла публикация:
ссылка
все дело было в вот в чем: Обратите внимание, что необходимо указывать «ИспользованиеByteOrderMark.НеИспользовать» иначе возникнут проблемы на стороне сайта с расшифровкой JSON строки.