【问题标题】:How to modify webservice proxy to get Raw XML如何修改 Web 服务代理以获取原始 XML
【发布时间】:2010-10-05 17:55:37
【问题描述】:

这是为我尝试访问的 Web 服务创建的代理方法。我将如何修改它以从 Web 服务调用中获取原始 XML?

        /// <remarks/>
    [System.Web.Services.Protocols.SoapHeaderAttribute("CallOptionsValue")]
    [System.Web.Services.Protocols.SoapHeaderAttribute("MruHeaderValue")]
    [System.Web.Services.Protocols.SoapHeaderAttribute("SessionHeaderValue")]
    [System.Web.Services.Protocols.SoapHeaderAttribute("QueryOptionsValue")]
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace = "urn:partner.soap.sforce.com", ResponseNamespace = "urn:partner.soap.sforce.com", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("result")]
    public QueryResult query(string queryString)
    {
        object[] results = this.Invoke("query", new object[] {
                    queryString});
        return ((QueryResult)(results[0]));
    }

感谢您的帮助!

【问题讨论】:

    标签: c# .net xml web-services


    【解决方案1】:

    幸运的是,有一个很好的方法,只需修改生成的代理类,使其继承自不同的基类。替代实现来自 Web Services Enhancements 3.0 包:

    Microsoft.Web.Services3.WebServicesClientProtocol

    在课程中,您将在范围内拥有 RequestSoapContext.Envelope.InnerXml 和 ResponseSoapContext.Envelope.InnerXml - 这正是您所需要的。

    【讨论】:

      【解决方案2】:

      如果您只想使用Fiddler Web Debugging tools 进行转储。

      如果您想真正检索/处理原始 XML,那么代理方法将无济于事。为 Web 服务创建 System.Net.HttpWebRequest,调用它,然后检索纯 XML 响应。格式/结构可在 .ASPX 页面或 Web 服务文档中找到。

      【讨论】:

        【解决方案3】:

        好吧,据我所知,我的一个朋友曾经使用常规的 ASMX 网络服务,这真是一次 hack....

        将返回的结果序列化为 XML 怎么样?这可能会奏效......

        类似于(完全未经测试且凭记忆):

        MemoryStream stm = new MemoryStream();
        XmlSerializer xmlSer = new XmlSerializer(typeof(QueryResult));
        xmlSer.Serialize(stm, queryResult);
        

        这行得通吗?

        马克

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-20
          • 2011-04-09
          • 2013-11-27
          • 1970-01-01
          相关资源
          最近更新 更多