2016-12-02 75 views
1

我有一個安靜的wcf服務。我必須從服務發送圖像到android應用程序。出於安全原因,我無法使用或提供直接的圖像url來下載。圖像尺寸小於2MB。我使用的ByteArray從WCF服務發送圖像Android應用在JSON,因爲:使用restful wcf將圖像發送到Android應用程序

<OperationContract()> _ 
<WebGet(UriTemplate:="/GetFile", ResponseFormat:=WebMessageFormat.Json, RequestFormat:=WebMessageFormat.Json)> _ 
Function GetFile(Byval Token as String) As Byte() 

的GetFile函數返回一個形象的ByteArray。我很困惑,因爲我經歷了很多網站。

是字節數組轉換爲Base64String。如果,那麼android客戶端收到的圖像大小將增加約30%。

我的問題是

什麼是發送圖像從寧靜的WCF與Android應用(少於2MB),不增加其數據大小的最佳途徑。 (沒有任何Base64或任何轉換)?

發送圖像爲而不是ByteArray創建一個開銷到服務器和高內存使用?

回答

1

ByteArray不是很好的做法。序列化ByteArray太慢。爲了解決這個問題,建議將ByteArray轉換爲Base64String。但如果您不想增加大小,則可以傳輸圖像。 發送流沒有開銷,但你不能序列化你的流的其他任何東西。這在你的情況下確定。

相關問題