4
我試圖動態修改SOAP請求中的XML數據給ASMX服務。使用GetWebRequest修改SOAP請求
爲了讀取和修改RequestStream
包含的XML數據,我在SoapHttpClientProtocol
類中重寫了GetWebRequest()
方法。
問題是,請求似乎是空的,其中沒有任何數據。這是因爲SOAP數據還沒有生成和序列化,或者我做錯了什麼?
我試圖動態修改SOAP請求中的XML數據給ASMX服務。使用GetWebRequest修改SOAP請求
爲了讀取和修改RequestStream
包含的XML數據,我在SoapHttpClientProtocol
類中重寫了GetWebRequest()
方法。
問題是,請求似乎是空的,其中沒有任何數據。這是因爲SOAP數據還沒有生成和序列化,或者我做錯了什麼?
你需要的是一個SoapExtension
。你可以在ProcessMessage
中登錄SoapMessageStage.AfterSerialize
階段修改你的肥皂信息。在過去,我無法添加對Microsoft WSE庫的依賴(因爲它不適用於Mono),所以我在過去添加了WSSE頭文件。
完整的教程在這裏: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會返回一個空的Web請求(對於給定的URL)來填充。然後調用GetWebResponse方法,以便在請求對象已經被SOAP請求體「填充」之後獲得實際的響應,所以這將是修改它的地方。 – Justin