Как форматировать нечетные заголовки при добавлении в компонент TIdHTTP через AddValue () - PullRequest
0 голосов
/ 04 января 2019

Я использую

idhttp.Request.CustomHeaders.AddValue(x,y);

Это нормально работает для меня, но теперь я наткнулся на другой заголовок и не уверен, как его добавить или какое значение, строку использовать.

В прошлом я использовал

'SOAPACTION','http://url/action' 

Но что мне нужно сделать для части mustUnderstand или для частей ReplyTo и Address?

Как бы я AddValue(x,y) их?

Я пытался

...AddValue('SOAPACTION','http://URL/Action');
...AddValue('mustUnderstand','1');

Но я получаю ошибки, и ИТ-служба хоста говорит, что мои заголовки не верны.

<s:Header>
<a:Action s:mustUnderstand="1">http://URL/Action</a:Action>
<a:MessageID>A Valid GUIID</a:MessageID>
<a:ReplyTo>
<a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
</a:ReplyTo>
<a:To s:mustUnderstand="1">URL STRING</a:To>
</s:Header>

Предыдущие простые заголовки работали, но я не уверен, как добавить эти заголовки.

1 Ответ

0 голосов
/ 04 января 2019

SOAPAction является действительным заголовком HTTP для обмена сообщениями SOAP, но mustUnderstand и ReplyTo не являются заголовками HTTP , поэтому НЕ добавляйте их с TIdHTTP.Request.CustomHeaders.AddValue().Они являются компонентами элемента <Header> внутри сообщения SOAP <Envelope>, поэтому они принадлежат к данным XML, которые вы отправляете на сервер с помощью TIdHTTP (в соответствии с примером XML, который вы показали).Вы путаете заголовки HTTP и заголовки SOAP.Это две разные вещи.

Если ИТ-сервер веб-сервера сообщает вам, что заголовки HTTP или SOAP неверны, он также должен сообщать вам, что именно с ними не так, чтобы вы могли это исправить.

Это не проблема Инди.Вы просто не готовите свое сообщение SOAP так, как ожидает веб-сервер.Но у нас нет этих деталей, чтобы посоветовать вам.Веб-сервер это делает.

...