通过AddValue()添加到TIdHTTP组件时如何格式化奇数标头

时间:2019-01-03 21:01:07

标签: delphi header indy idhttp

我正在使用

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

这对我来说很好,但是现在我遇到了一个不同的标题,并且不确定如何添加标题或要使用的值,字符串。

过去,我曾经使用过

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

但是对于mustUnderstand部分还是ReplyToAddress部分,我需要做什么?

我该如何AddValue(x,y)

我尝试过

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

但是我遇到了错误,主持人IT部门说我的标题不正确。

<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 :(得分:1)

SOAPAction是用于SOAP消息传递的有效HTTP标头,但是mustUnderstandReplyTo 不是HTTP标头,因此请勿将它们与{{1 }}。它们是SOAP TIdHTTP.Request.CustomHeaders.AddValue()消息中<Header>元素的组成部分,因此它们属于您通过<Envelope>发布到服务器的XML数据(根据您显示的示例XML) )。您混淆了HTTP标头和SOAP标头。他们是两件事。

如果网络服务器IT告诉您您的HTTP或SOAP标头不正确,它也应该告诉您它们到底有什么问题,以便您进行修复。

这不是印地问题。您只是没有按照Web服务器期望的方式准备SOAP消息。但是我们没有这些细节可以为您提供建议。网络服务器IT确实如此。