我应该使用哪个标题? XMLHTTPRequest标头或SOAP标头?

时间:2012-03-21 08:12:29

标签: c# javascript web-services soap xmlhttprequest

我有一个包含SOAP消息的XMLHTTPRequest 我想添加将识别消息的guid,并将由C#Web服务使用 GUID目标是识别特定用户并且应该在服务器上护送所有用户请求以进行身份​​验证,此GUID是在用户登录时创建的,保存在服务器上,然后是服务器检查请求guid的每个请求。

我应该像这样使用XMLHTTPRequest标头:

setRequestHeader("GUID", this.requestGUID);

或使用SOAP标头

<?xml version="1.0"?<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
  <GUID>someGUID...</GUID>
</soap:Header>
...
...
</soap:Envelope>

其中一个有什么好处吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我认为你问题的答案主要是品味问题。我个人更喜欢使用setRequestHeader方法:它在消息中占用的空间更少,而且不依赖于SOAP(我个人更喜欢JSON作为SOAP)。

如果我更了解GUID价值的本质,我可能会改变主意。如果GUID是数据的属性,那么消息体将是更好的选择。如果您在问题中发布了setRequestHeader选择,则没有更多信息。

答案 1 :(得分:0)

如果您的代码有SOAP消息,则应该有一个soap标头。 将SOAP消息与其他标头混合可能会破坏SOAP堆栈的某些实现。 .NET中的实现特别严格。

XMLHTTPRequest标头用于具有不同原则的restfull服务。