2009-09-17 20 views
0

我參與了一個將動態調用webservice的項目。以編程方式創建SOAP Envelope並將其包含在.NET中的HttpWebRequest中

我已經想出了一種方法來調用一個沒有方法參數的web服務方法,但現在我需要的是我調用其上有參數的web方法。

想知道是否有很好的例子可以創建一個soap信封,以及如何將它包含在我的HttpWebRequest中?

非常感謝!

乾杯, 安

+0

即使您知道信封的結構,您如何知道要輸入的數據? – 2009-09-17 14:51:15

+0

我基本知道哪些數據需要在Web服務之間傳遞,因爲我編寫了兩個Web服務。我不認爲我需要傳遞的數據參數會經常變化,所以我已經得到了它需要的數據的完整定義。 – mallows98 2009-09-17 16:53:18

回答

-1

有要手動生成SOAP信封和使用的HttpWebRequest調用Web服務時,你可以從WSDL中生成一個客戶代理任何原因(使用svcutil.exe的或Wsdl.exe用),並讓框架爲你付出沉重的代價?

通常情況下,Web服務會公開描述您可以調用的操作以及涉及的類型的合約,以允許客戶端發現並使用它。

+1

謝謝你的回答。 有一個原因,我需要手動做...我創建了一個通用的電子郵件生成器/發送服務,將拉出不同客戶端的電子郵件數據。 我曾考慮過從WSDL生成一個代理,但我假設它的缺點是,如果我們嘗試添加一個新的涉衆Web應用程序需要發送電子郵件,我可能需要重新編譯每一個代碼時間。 我可能在這個假設中是錯誤的,但如果你可以建議任何其他方式,我可以做到這一點,我真的很感激它! 乾杯! – mallows98 2009-09-17 06:17:20

0

SoapFormatter的序列化怎麼樣?

SoapFormatter Class

您可以通過使用接口和dynamicaly加載組件通過

Assembly a = Assembly.LoadFile("Path"); 

也使用強類型類,你就可以「熱插拔」新的代理或其他類型。

+0

將嘗試這樣做。感謝你! :) – mallows98 2009-09-17 16:53:50

+0

嗨mallows98, 你能解決這個問題嗎? 我有一個類似的問題在這裏: http://stackoverflow.com/questions/1609294/invoking-an-asp-net-web-service-method-via-an-http-request – 2009-11-08 22:13:24

+0

嗨祥子, 不,我基本上重新設計了我的代碼,並使用了標準Web服務模式,您需要將您的Web服務設置爲動態,並確保我將訪問的所有方法簽名都具有相同的名稱。我重新設計我的代碼的原因是因爲我沒有時間完成項目,我需要做一些快速的事情。 希望這有助於! – mallows98 2009-11-22 20:25:36

相關問題