2016-12-02 67 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。但如果您不想增加大小,则可以传输图像。 发送流没有开销,但你不能序列化你的流的其他任何东西。这在你的情况下确定。

相关问题