使用 C 夏普 SOAP 1.1 和 XML 数据调用远程 Web 服务?如何

本文关键字:Web 服务 如何 调用 数据 夏普 SOAP XML 使用 | 更新日期: 2023-09-27 18:34:54

在这里我正在使用ajax jquery调用Web服务,现在我想对soap 1.1 xml数据做同样的工作

W3学校方法链接

我现在使用与上面的方法相同的方法,我想使用 soap 1.1 asp.net 使用 xml c sharp

我也试图提前提供网络链接作为网络参考选项,但它说

架构不匹配

您能否给我一个带有XML链接的代码项目 aso.net SOAP 1.1的链接或任何分步方法如何处理该数据

 <data>
    <row>
       <code>AAA</code>
       <description>PIA </description>
   </row>
   <row>
       <code>AAB</code>
       <description>UK AIRline</description>
   </row>
 ...........so on
   </data>

使用 C 夏普 SOAP 1.1 和 XML 数据调用远程 Web 服务?如何

您将无法使用 Soap 1.1 读取 xml 文件。

Soap 是一种协议(简单对象访问协议(,而不是文件类型。它碰巧使用 xml 作为映射对象层次结构的一种方式,但它无法获取 xml 文件并仅使用它。

像您尝试添加的 SOAP Web 服务使用 xsd 来定义架构,该模式由 WSDL 文件(Web 服务定义语言(表示。

最好的办法是对 xml 文件的 url 发出 Web 请求,然后在代码中处理该文件。

像这样:

var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.w3schools.com/ajax/cd_catalog.xml");
        httpWebRequest.ContentType = "application/json; charset=utf-8";
        httpWebRequest.Method = "GET";
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                return streamReader.ReadToEnd();
            }
        }

编辑:要执行开机自检请求:

public static string RunHttpRequest(string url, object obj)
    {
        ServicePointManager.Expect100Continue = false;
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest.ContentType = "application/json; charset=utf-8";
        httpWebRequest.Method = "POST";
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            var json = JsoNify(obj);
            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                return streamReader.ReadToEnd();
            }
        }
    }
    private static string JsoNify(object obj)
    {
        return JsonConvert.SerializeObject(obj, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
    }