2010-01-08 2 views
1

런타임시 ASP.NET 코드에서 SOAP 웹 서비스를 호출하는 방법과 컴파일 타임에 참조/웹 참조로 추가하는 방법이 없습니다. 이것은 응용 프로그램이 각 URL을 호출하는 데 필요한 웹 서비스 url, 메서드 및 매개 변수 목록을 알고 있다고 가정합니다. 사전에ASP.NET에서 SOAP 웹 서비스 런타임 호출

덕분에 다음과 같은 방법을 호출 할 것을 가정하면 비제이

답변

1

:

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)); 
} 

그리고 그 결과를 분석 : 당신은 올바른 SOAP 봉투를 구성 할 필요가

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

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

을 XML.

+0

빠른 응답을 보내 주셔서 감사합니다. 내가 이것을 밖으로 시험하게 해주세요. Rgds 비제이 – vijay

+0

감사합니다. Darin. 그것은 아주 잘 작동했습니다. – vijay

관련 문제