Мне сказали что надо задать достаточно сложные заголовки HTTP запроса, как это сделать? просто как строки кинуть?
Вот такой должен быть заголовок

```1c
    content.Headers.ContentType.MediaType = "multipart/related";
    content.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("type", "\"application/xop+xml\"));
    content.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("start", "\"<rootpart*soapui.org>\"));
    content.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("start-info", "\"text/xml\"));
    Encoding utF8 = Encoding.UTF8;
    string mediaType1 = messageConfiguration.MediaType;
    StringContent stringContent = new StringContent(content1, utF8, mediaType1);
    stringContent.Headers.ContentType.MediaType = "application/xop+xml";
    //stringContent.Headers.Add("SOAPAction", "\"SendRequest\");
    stringContent.Headers.Add("Content-Transfer-Encoding", "8bit");
    stringContent.Headers.Add("Content-ID", "<rootpart*soapui.org>");
    content.Add((HttpContent)stringContent);
    if (action != null && messageConfiguration.SoapVersion == SoapVersion.Soap11)
    content.Headers.Add("SOAPAction", string.Format("\"{0}\", (object)action));
    else if (action != null && messageConfiguration.SoapVersion == SoapVersion.Soap12)
    content.Headers.Add("SOAPAction", string.Format("\"{0}\", (object)action));
```
---
(11) сочувствую. Они похоже скинули пример работы со своим WCF. Это не SOAP в чистом виде. Это фишка именно .NET
Не уверен, что можно из 1С напрямую с ним работать.
Для ознакомления вот ссылка:
https://docs.microsoft.com/ru-ru/dotnet/framework/wcf/feature-details/messaging-protocols

Если вопрос касается исключительно примера создания заголовка, то он примерно такой получится:

```1c
    Заголовок = Новый Соответствие;
    Заголовок.Вставить("Content-type", "multipart/related; type="application/xop+xml";start="<rootpart*soapui.org>";start-info="text/xm""
    Заголовок.Вставить("Content-Transfer-Encoding", "8bit");
    Заголовок.Вставить("Content-ID", "<rootpart*soapui.org>");
```

по поводу action, что в конце приведено:

```1c
    if (action != null && messageConfiguration.SoapVersion == SoapVersion.Soap11)
    content.Headers.Add("SOAPAction", string.Format("\"{0}\", (object)action));
    else if (action != null && messageConfiguration.SoapVersion == SoapVersion.Soap12)
    content.Headers.Add("SOAPAction", string.Format("\"{0}\", (object)action));
```

 Вот тут загвоздка полная. Это указывается команда, которая будет выполнена. "Туши свет" называется.
Хотя, если они дадут текстовое представление команды, тогда можно ее в заголовки добавить как строку.
---
(11) сочувствую. Они похоже скинули пример работы со своим WCF. Это не SOAP в чистом виде. Это фишка именно .NET
Не уверен, что можно из 1С напрямую с ним работать.
Для ознакомления вот ссылка:
https://docs.microsoft.com/ru-ru/dotnet/framework/wcf/feature-details/messaging-protocols

Если вопрос касается исключительно примера создания заголовка, то он примерно такой получится:

```1c
    Заголовок = Новый Соответствие;
    Заголовок.Вставить("Content-type", "multipart/related; type="application/xop+xml";start="<rootpart*soapui.org>";start-info="text/xm""
    Заголовок.Вставить("Content-Transfer-Encoding", "8bit");
    Заголовок.Вставить("Content-ID", "<rootpart*soapui.org>");
```

по поводу action, что в конце приведено:

```1c
    if (action != null && messageConfiguration.SoapVersion == SoapVersion.Soap11)
    content.Headers.Add("SOAPAction", string.Format("\"{0}\", (object)action));
    else if (action != null && messageConfiguration.SoapVersion == SoapVersion.Soap12)
    content.Headers.Add("SOAPAction", string.Format("\"{0}\", (object)action));
```

 Вот тут загвоздка полная. Это указывается команда, которая будет выполнена. "Туши свет" называется.
Хотя, если они дадут текстовое представление команды, тогда можно ее в заголовки добавить как строку.
---
Тут у нас получилось через SoapUI отправить наш пакет и он вернул данные, мы полностью заменили Xml запрос одного из методов, и никаких заголовков не понадобилось, WSПрокси я так понимаю тут не поможет, может есть вариант его эмулировать, обмануть ка то?
---
сомневаюсь. Точно не подскажу.
Внутри c# обмен сервера с клиентом через WCF делал. Но там есть инструменты соответствующие, которые сопоставляют объекты сервера и клиента.
---
если это ваши программисты с#, то пусть сделают restAPI нормальный.
---
Заголовоки.Вставить("Content-type", "multipart/related; type=""application/xop+xml"";start=""<rootpart*soapui.org>"";start-info=""text/xm""");
 Заголовоки.Вставить("Content-Transfer-Encoding", "8bit");
 Заголовоки.Вставить("Content-ID", "<rootpart*soapui.org>");
 Заголовоки.Вставить("SOAPAction","urn:SendRequest");

Вот так сделал, не получилось, последний я как понимаю это как раз название метода, в своапе он без url идет, как правильно?
---
последним идет идентификатор команды на сервере. Для этого нужно знать точно так как он передается в c#.
Но все равно не будет так работать. Это не http сервис.
---
Как то это работает в обработке ГИС ГМП, только по коду жуть, не могу понять откуда что берется, задается в справочнике обменов с банком, там куча всего. Я ж говорю SWOUp по ссылке все срабатывает http://smev3-n0.test.gosuslugi.ru:7500/smev/v1.2/ws?wsdl
там метод есть SendRequest
---
так это SOAP сервис. В терминологии 1С это web сервис.
Вот и сходите из этого.
---
Пробовали и так, WSссылку создавали, там он цепляет методы, но описание XDTO пакетов не полное, пакет ЭЦП не описан с схеме, потом подписывать XDTO пакет не получиться, не факт что так получиться в общем.
Как ни крути надо заголовки правильные задать
---
Тут подсказали, что в Своапе можно подглядеть заголовки

```1c
    POST http://smev3-n0.test.gosuslugi.ru:7500/smev/v1.2/ws HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: "urn:SendRequest"
    Content-Length: 5403
    Host: smev3-n0.test.gosuslugi.ru:7500
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
```

Но я так понимаю не все из этого нужно, что нужно, и все должно быть строкой, а там еще кавычки присуствуют, они нужны?
---
да. кавычки нужны.
---
Я кое что добился

```1c
    Заголовоки = Новый Соответствие;
    Заголовоки.Вставить("Content-type", "text/xml;charset=UTF-8");
    Заголовоки.Вставить("Accept-Encoding", "gzip,deflate");
    Заголовоки.Вставить("Content-Length", "5403");
    Заголовоки.Вставить("SOAPAction",""urn:SendRequest"");
```

Отправляю

```1c
    ЗапросHTTP.УстановитьТелоИзСтроки(СтрТЧ.Запрос,КодировкаТекста.UTF8,ИспользоватьBOM);//ИзДвоичныхДанных(ДвоичныеДанныеФайла);
    ОтветHTTP = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
```

в результате "Incoming message is not xml message"
с кодировкой у меня все нормально?
---
Клиент

```1c
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Authorization", "Bearer " + mParams.Access_token);

    etc...
```

Метод Get как пример использования заголовков. Брать в чистом виде без проверки применимости не рекомендую

```1c
    Function Get(pHost, pHeaders, pAddress, pTimeOut, pContext = ") Export

    Request = New HTTPRequest(pAddress, pHeaders);
    SSL = New OpenSSLSecureConnection(Undefined, Undefined);
    Connection = New HTTPConnection(pHost, , , , ,pTimeOut, SSL);

    Response = Connection.Get(Request);
    ResponseText = Response.GetBodyAsString();

    ResponseErrorMSG(pContext, Response.StatusCode, ResponseText);

    Return ResponseText;

    EndFunction
```
---
Про заголовки я прочитал что это соответствие, то есть первая часть, то что клиент, только я не понял и примера, как сформировать свои соответствия из того что надо
---
Заголовки вам известны, вставляете их все в соответствие и скармливаете методу Get
---
Да вот никак не пойму, должна быть серия
```1c
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("что", что);
    Заголовки.Вставить("что", что);
    .......
```

как я понимаю, но не пойму что собственно писать
---
```1c
    Заголовки.Вставить("ИмяЗаголовка", ЗначениеЗаголовка);

    // Дополнительные параметры запроса дописываются в конце урла в формате:

    "?" + ИмяПараметра1 + "=" + ЗначениеПараметра1 + "&" + Пробел + ИмяПараметра2 + "=" + ЗначениеПараметра2;
```
---
Извините, у меня каша в голове, то что мне скинули это текст, я так понимаю это то что должно передаться в сервис, так из приведенного в первом посте, что является именем заголовка, что значением, а про параметры вообще жуть, ничего не понял
---
Так спросите у тех кто передал. Пусть дадут пример сформированного HTTP запроса, По нему уже разберетесь. Ковырять пэхапе код нет никакого желания.
Так и напиши, мол я одноэсник и в этих ваших похапе не разбираюсь. Покажите пальцем как должен выглядеть запрос
---
Да они сишарповцы, вообще по другому разговаривают
---
Они в любом случае получают и обрабатывают запрос и могут показать примеры того, что они ожидают получить
---
вот я и задал вопрос, какие должны быть заголовки при отправке запроса в очередь, то что они мне ответили в начале, я так понимаю это результат, а формируеться в сишарпе это совсем наверно по другому