1
如何在運行時從ASP.NET代碼調用SOAP webservices,而不是在編譯時將它們作爲引用/ web引用添加。 這是假設應用程序知道Web服務url的列表,調用每個URL所需的方法和參數。在ASP.NET中調用SOAP webservices運行時間
在此先感謝 維傑
如何在運行時從ASP.NET代碼調用SOAP webservices,而不是在編譯時將它們作爲引用/ web引用添加。 這是假設應用程序知道Web服務url的列表,調用每個URL所需的方法和參數。在ASP.NET中調用SOAP webservices運行時間
在此先感謝 維傑
假設你想調用下面的方法:
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。
非常感謝您的快速回復。讓我試試這個。 Rgds Vijay – vijay 2010-01-08 12:11:21
謝謝Darin。它工作得很好。 – vijay 2010-02-06 13:15:34