.NET에서 SOAP 요청을 게시하는 방법?



2 Answers

나는 XML 요청을 수동으로 작성한 다음 webrequest 객체를 사용하여 요청을 제출한다.

string data = "the xml document to submit";
string url = "the webservice url";
string response = "the response from the server";

// build request objects to pass the data/xml to the server
byte[] buffer = Encoding.ASCII.GetBytes(data);
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = buffer.Length;
Stream post = request.GetRequestStream();

// post data and close connection
post.Write(buffer, 0, buffer.Length);
post.Close();

// build response object
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream responsedata = response.GetResponseStream();
StreamReader responsereader = new StreamReader(responsedata);
response = responsereader.ReadToEnd();

코드의 시작 부분에있는 문자열 변수는 설정 한 것입니다. 그런 다음 서버에서 문자열 응답 (잘하면 ...)을 얻습니다.

Question

XML 파일에 SOAP 요청이 있습니다. .net에서 웹 서비스에 요청을 게시하고 싶습니다. 구현하는 방법은 무엇입니까?




나는 XML이 어떻게 생성되고 그것이 유효한 SOAP 메시지인가 궁금하다. 위의 사람들이 제안한대로 HTTP를 통해 게시 할 수 있습니다.

그게 효과가 있는지 테스트하고 싶다면 SoapUI 를 시험해 볼 수있다.




오래된 스레드를 부딪쳐서 죄송합니다. 여기에 내 해결책이 있습니다.

''' <summary>
''' Sends SOAP to a web service and sends back the XML it got back.
''' </summary>
Public Class SoapDispenser
    Public Shared Function CallWebService(ByVal WebserviceURL As String, ByVal SOAP As String) As XmlDocument
        Using wc As New WebClient()
            Dim retXMLDoc As New XmlDocument()

            wc.Headers.Add("Content-Type", "application/soap+xml; charset=utf-8")
            retXMLDoc.LoadXml(wc.UploadString(WebserviceURL, SOAP))

            Return retXMLDoc
        End Using
    End Function
End Class


Related