2011-01-31 59 views
3

我的REST Web服務必須向客戶端發送圖像文件。我對2個選項感到困惑:將圖像作爲字節數組發送,還是應該將其編碼爲基本64字符串?每個的優缺點是什麼?我可能不得不使用gzip壓縮圖像...應該使用任何一種方法造成問題嗎?我甚至可能需要將我的方法公開爲SOAP服務,在這種情況下我應該選擇哪種方法?REST風格的Web服務中的字節數組與基數64字符串

謝謝!

回答

5

有關RESTful接口的奇妙之處在於它只是HTTP。因此,如果您通過REST公開「字節數組」版本,則任何瀏覽器都可以在您的REST URL上執行HTTP GET,並接收並直接渲染您的圖像。逐字地返回有效載荷比放置一個編碼更加RESTful。沒有太多可以通過REST推薦額外的base64編碼層。

如果你要返回SOAP,你絕對想要返回一個base64字符串。原始二進制數據與構建SOAP的XML不兼容。您可以嘗試通過MTOM解決該問題,但爲了與SOAP客戶端進行通用兼容,您可能需要內嵌base64編碼數據。

一般來說,通過壓縮圖像文件沒有好處。圖像格式本身在內部涉及壓縮,而第二個壓縮過程不會獲得更多空間節省。

1

如果你的服務返回JSON或XML(圖像+一些信息),比你應該在64位編碼圖像,因爲它們都是基於字符串,並且你想傳輸字節數組。唯一的問題,你應該自己做還是應該讓你使用我的框架。

GZip的情況很明顯 - 對servlet容器進行中繼壓縮(如tomcat--可以配置,是否應該對gzip進行響應)。或者,您可以使用類似GZipFilter的東西。

相關問題