【问题标题】:How to extract SOAP Header from WS Response如何从 WS 响应中提取 SOAP 标头
【发布时间】:2015-09-24 18:14:57
【问题描述】:

我在 .NET 环境中并调用 Java SOAP Web 服务。我将服务添加为 Web 参考,它为我加载了代理和配置设置。到目前为止,一切都很好。

现在,对我来说,这就像调用另一个库一样,因为所有类型都已加载,我可以调用方法并将返回类型分配给 .Net 为我生成的代理类。

但是,我的提供商说他们正在发送一些 SOAP 标头中的 cookie。现在,如何从我的 C# 代码访问 SOAP 标头?因为当我调用服务并检索响应时,就像调用方法并检索 Typed 响应一样。不确定如何从中提取 SOAP 标头信息。

有什么想法吗?

【问题讨论】:

    标签: java c# web-services wcf soap


    【解决方案1】:

    您可以使用 OperationContext 类:https://msdn.microsoft.com/pt-br/library/system.servicemodel.operationcontext%28v=vs.110%29.aspx

    使用服务操作中的 OperationContext 来访问 当前操作执行环境。特别是,操作 上下文用于访问双工服务中的回调通道,以 跨部分操作存储额外的状态数据,并 访问传入消息 headers 和属性以及添加传出消息 消息头和属性。

    您可以像这样从Header中读取信息(将“Cookie”替换为您要读取的标签名称):

    var cookieIndex = OperationContext.Current.IncomingMessageHeaders.FindHeader("Cookie", "");
    XmlReader reader = OperationContext.Current.IncomingMessageHeaders.GetReaderAtHeader(cookieIndex).ReadSubtree();
    

    希望对你有帮助

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多