Аве, коллеги!

Перекопал инфостарт (может плохо копал), но есть трабл.
Есть приметивнеший POST-запрос которой отправляет на сайт массив guid-ов товаров.

Бади запроса:
JSONstr="{""guids"": [""f55ab18b-7fa8-11ea-aa9a-b2ce7d90c661""]};

1. Отправляем через COM:

```1c
    WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.Option(2,"utf-8");
    WinHttp.Open("POST","https://my.com/sync/start",0);
    WinHttp.SetRequestHeader("Accept-Language", "ru");
    WinHttp.SetRequestHeader("Accept-Charset","utf-8");
    WinHttp.setRequestHeader("Content-Charset", "utf-8");
    WinHttp.setRequestHeader("Content-type", "application/json; charset=utf-8");
    ТелоПОСТ = JSONstr;
    WinHttp.Send(ТелоПОСТ);
    ТекстОтвета = WinHttp.ResponseText();
```

И все взлетает, никаких проблем. Запрос отправляется, сайт его получает и обрабатывает.

2. Штатные средства:

```1c
    АдресСервиса = "my.com";
    АдресРесурса = "/sync/start";

    HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
    HTTPЗапрос.УстановитьТелоИзСтроки(JSONstr, "UTF-8");
    HTTPСоединение = Новый HTTPСоединение(АдресСервиса, , , , , , Новый ЗащищенноеСоединениеOpenSSL);
    Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
```

Здесь же, сайт принимает реквест, но тело запроса приходит пустое.

В постмане этот запрос отрабатывает корректно.
Если этот запрос отправлять на другой ресурс (соседний зеркальный сайт) штатными средствами, бади не пустое.

И тут вопрос, WTF?)
Либо заголовки есть обязательные, либо.. В общем, вопрос к знатокам - почему через COM работает, а штатными - не хотеть.

Благодарю за помощь!

PS Ресурс левый для примера. Платформа 8.3.11, 12, 16 - пробовал на разных.
---
А суть решения проблемы, как оказалось, проще некуда:

```1c
    HTTPЗапрос.Заголовки.Вставить("Host","my.com");
    HTTPЗапрос.Заголовки.Вставить("Content-Type","application/json");
```

2 обязательных хедера-заголовка и все взлетело.
Всем спасибо за участие в решении проблемы.
Решено.

PS Для тех, кто ищет - требуйте от девов сайта все заголовки.
---
попробуйте так:

```1c
    HTTPЗапрос.УстановитьТелоИзСтроки(JSONstr, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
```

И покажите получившийся код.
---
Не, не в этом дело.
---
18 платформа?
---
8.3.16
---
Пробовал на 8.3.11, .12. - такой же результат
---
Попробуй все-таки явно указать что это JSON в заголовке

```1c
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-type", "application/json; charset=utf-8");

    HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
```

Возможно на той стороне проверяют что пришло.
---
Сообщение было скрыто модератором.
---
Указывал явно - результат без изменений.
---
У Вас в первом варианте тоже через SSL идет?
---
Оба через SSL.
WinHttp.Open("POST","https://my.com/sync/start",0); в первом варианте.
---
А суть решения проблемы, как оказалось, проще некуда:

```1c
    HTTPЗапрос.Заголовки.Вставить("Host","my.com");
    HTTPЗапрос.Заголовки.Вставить("Content-Type","application/json");
```

2 обязательных хедера-заголовка и все взлетело.
Всем спасибо за участие в решении проблемы.
Решено.

PS Для тех, кто ищет - требуйте от девов сайта все заголовки.
---
Вроде в примере заголовок host в WinHttp не указывался. А так-то да, Если заголовки обязательны, то их надо знать и указывать.