C#을 사용하여 http POST 요청을 통해 ASP.NET 웹 서비스를 호출하려고합니다 (즉, wsdl.exe를 실행하여 생성 된 SoapHttpClientProtocol 객체를 사용하고 싶지 않습니다.). 지금까지 내가 말할 수있는 http 요청을 통해 ASP.NET 웹 서비스 메서드 호출
이 프로세스가 포함됩니다가 URL을 가리키는 HttpWebRequest를 객체를 생성/방법에 웹 서비스의 방법;
SOAP xml envelope 만들기;
XmlSerializer를 사용하여 웹 메서드에 전달할 매개 변수를 serialize합니다.
요청을 작성하고 응답을 구문 분석하십시오.
생성 된 코드를 복사하여 사용하지 않고이 작업을 수행하고 싶습니다.
(1) 매우 단순한 것처럼 보입니다.
(2) 여기 엔벨로프가 표준인지, 아니면 내가 부르고있는 웹 서비스 방법에 따라 어떻게 바뀌어야하는지 모릅니다. 서비스에 필요한 경우 사용자 정의 비누 헤더를 추가해야 할 수도 있습니다.
(3)이 작업을 수행하는 프로세스는 무엇입니까? 나는 이런 식으로 뭔가 할 필요가 있다고 가정합니다 또한
MyClass myObj;
XmlSerializer ser = new XmlSerializer(myObj.GetType());
TextWriter writer = new StringWriter();
ser.Serialize(writer, myObj);
string soapXml = writer.ToString();
writer.Close();
을, 나는 비누에 soapXml를 추가해야합니다 추측 : Body 요소
(4) 나는 추출의 내용을 역 직렬화한다고 생각 비누 : 바디 요소. (3)의 과정을 역으로해도 괜찮습니까? 내가 여기 이렇게 만하고 이유를 모르는
감사합니다,
K.
그냥 궁금
는 다음과 같은 SOAP 서비스 있다고 가정? 왜 시도하고 테스트 한 도구를 사용하지 않습니까? – David
http 요청 수준에서 웹 서비스 호출에 액세스하면 soap/http 헤더 설정과 같은 작업을보다 세밀하게 제어 할 수 있다고 생각했습니다. 또한 때때로 웹 서비스 클라이언트를 생성하는 wsdl이 사용할 수 있습니다 (메서드 서명이 알려진 경우에도) ... –