簡體   English   中英

在ASP.NET中調用SOAP Web服務運行時

[英]Calling SOAP webservices runtime in ASP.NET

如何在運行時從ASP.NET代碼中調用SOAP Web服務,而不是通過在編譯時將它們添加為引用/ Web引用來實現。 假設應用程序知道Web服務URL的列表,調用每個URL所需的方法和參數。

在此先感謝Vijay

假設您要調用以下方法:

public class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}

[WebMethod]
public string HelloWorld(Foo foo)
{
    return "Hello World";
}

您需要構造正確的SOAP信封:

using (WebClient client = new WebClient())
{
    client.Headers.Add("SOAPAction", "\"http://tempuri.org/HelloWorld\"");
    client.Headers.Add("Content-Type", "text/xml; charset=utf-8");
    var payload = @"<?xml version=""1.0"" encoding=""utf-8""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><soap:Body><HelloWorld xmlns=""http://tempuri.org/""><foo><Id>1</Id><Name>Bar</Name></foo></HelloWorld></soap:Body></soap:Envelope>";
    var data = Encoding.UTF8.GetBytes(payload);
    var result = client.UploadData("http://example.com/Service1.asmx", data);
    Console.WriteLine(Encoding.Default.GetString(result));
}

並解析生成的XML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM