2010-01-19 121 views
0

我有一個返回XML的.NET Web服務,我想在發送它之前壓縮它。壓縮Web服務的結果

有一對夫婦的方式,我可以做到這一點,但我寧願沒有這樣做的代碼。

我可以設置IIS來gzip由我的WebService返回的所有內容嗎?它沒有被瀏覽器調用。

另一個問題是,如果此Web服務正在被Java客戶端使用 - 是否會影響任何內容?

我想象的客戶端代理仍然需要解壓,但如果我用gzip不應該有任何問題 - 這是一個通用協議,對不對?

回答

3

標準的方式做這種事情是用gzip通過HTTP壓縮,因爲它是直接由協議的支持。只要你的客戶支持,那麼你應該很好去。

如果您正在使用更多的基本工具,從頭開始編寫客戶端,您可能需要添加處理這個自己:就是一個很好的例子顯示here (python)

我希望很多SOAP客戶端庫都有內置的支持,但您必須嘗試一下以確保:如果他們依靠較低級別的HTTP庫來完成他們的工作,它應該只是工作。

+0

這是我所期望的 - 但在客戶端會發生什麼?他們是否必須編寫代碼來顯式解壓縮請求,或者生成的SOAP代理是否會爲他們執行此操作?例如根據這個鏈接,他們需要編寫代碼 - http://janetandkevin.com/blog/articles/189.aspx – Duncan 2010-01-19 16:46:57

+0

正如我所說的,取決於客戶端:一些客戶端將使用低級別的HTTP庫,將讀取標題並做正確的事情。其他人可能不會,在這種情況下,你可能需要做一些額外的工作。無論如何,您始終可以讓您的服務器端代碼查看來自客戶端的accept頭,以確定它是否支持gzip。 – jkp 2010-01-19 16:48:50

+0

參見§14.3接受編碼:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html – trashgod 2010-01-19 18:57:35