2011-11-15 2 views
4

SOAP 요청에서 XML 데이터를 ASMX 서비스로 동적으로 수정하려고합니다.GetWebRequest를 사용하여 SOAP 요청 수정

에 포함 된 XML 데이터를 읽고 수정하려면 GetWebRequest() 메서드를 SoapHttpClientProtocol 클래스에서 재정의했습니다.

문제는 요청이 비어있는 것 같습니다. 데이터가 전혀 없습니다. SOAP 데이터가 아직 생성 및 직렬화되지 않았거나 잘못된 작업을 수행했기 때문입니까?

+1

대체로 [GetWebResponse] (http://msdn.microsoft.com/en-us/library/8415zzb7.aspx)를 재정의하려 했습니까? – Justin

+0

아니, GetWebRequest입니다. 어쩌면 방법에 대한 나의 이해는 결함이있다. 실제 SOAP 데이터가 설정되기 전에 이것이 가능할 수 있는가? 그것은 분명 그렇게 보일 것입니다. – Vex

+2

문서에 대한 나의 해석은 GetWebRequest가 (주어진 URL에 대한) 빈 웹 요청을 채울 것이라고했습니다. GetWebResponse 메소드는 요청 객체가 SOAP 요청 본문으로 "채워진"후에 실제 응답을 얻기 위해 호출됩니다. 따라서이 요청 객체를 수정해야합니다. – Justin

답변

2

필요한 것은 SoapExtension입니다. SoapMessageStage.AfterSerialize 단계에 ProcessMessage 단계로 연결하여 비누 메시지를 수정할 수 있습니다. 이전에 WSSE 헤더를 추가하기 위해 Microsoft의 WSE 라이브러리에 대한 종속성을 추가 할 수없는 상황에서이 작업을 수행했습니다 (Mono에서는 사용할 수 없기 때문에). 여기

전체 튜토리얼 : http://msdn.microsoft.com/en-us/magazine/cc164007.aspx

GetWebRequestGetWebResponse 너무 늦기 너무 일찍 목적이다.