SOAP 요청에서 XML 데이터를 ASMX 서비스로 동적으로 수정하려고합니다.GetWebRequest를 사용하여 SOAP 요청 수정
에 포함 된 XML 데이터를 읽고 수정하려면 GetWebRequest()
메서드를 SoapHttpClientProtocol
클래스에서 재정의했습니다.
문제는 요청이 비어있는 것 같습니다. 데이터가 전혀 없습니다. SOAP 데이터가 아직 생성 및 직렬화되지 않았거나 잘못된 작업을 수행했기 때문입니까?
SOAP 요청에서 XML 데이터를 ASMX 서비스로 동적으로 수정하려고합니다.GetWebRequest를 사용하여 SOAP 요청 수정
에 포함 된 XML 데이터를 읽고 수정하려면 GetWebRequest()
메서드를 SoapHttpClientProtocol
클래스에서 재정의했습니다.
문제는 요청이 비어있는 것 같습니다. 데이터가 전혀 없습니다. SOAP 데이터가 아직 생성 및 직렬화되지 않았거나 잘못된 작업을 수행했기 때문입니까?
필요한 것은 SoapExtension
입니다. SoapMessageStage.AfterSerialize
단계에 ProcessMessage
단계로 연결하여 비누 메시지를 수정할 수 있습니다. 이전에 WSSE 헤더를 추가하기 위해 Microsoft의 WSE 라이브러리에 대한 종속성을 추가 할 수없는 상황에서이 작업을 수행했습니다 (Mono에서는 사용할 수 없기 때문에). 여기
전체 튜토리얼 : http://msdn.microsoft.com/en-us/magazine/cc164007.aspx
GetWebRequest
는 GetWebResponse
너무 늦기 너무 일찍 목적이다.
대체로 [GetWebResponse] (http://msdn.microsoft.com/en-us/library/8415zzb7.aspx)를 재정의하려 했습니까? – Justin
아니, GetWebRequest입니다. 어쩌면 방법에 대한 나의 이해는 결함이있다. 실제 SOAP 데이터가 설정되기 전에 이것이 가능할 수 있는가? 그것은 분명 그렇게 보일 것입니다. – Vex
문서에 대한 나의 해석은 GetWebRequest가 (주어진 URL에 대한) 빈 웹 요청을 채울 것이라고했습니다. GetWebResponse 메소드는 요청 객체가 SOAP 요청 본문으로 "채워진"후에 실제 응답을 얻기 위해 호출됩니다. 따라서이 요청 객체를 수정해야합니다. – Justin