使用restful wcf

时间:2016-12-02 17:33:40

标签: c# android web-services rest wcf

我有一个宁静的wcf服务。我必须将图像从服务发送到Android应用程序。出于安全原因,我无法使用或提供直接的图像URL下载。图像大小不到2MB。我正在使用ByteArray将图像从WCF服务发送到json中的Android应用程序,如下:

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

GetFile函数返回一个ByteArray图像。我很困惑,因为我经历了很多网站。

字节数组是否转换为 Base64String 。如果那么Android客户端收到的图片大小将增加约30%。

我的问题是

将图像(小于2MB)从restful wcf发送到Android应用程序而不增加其数据大小的最佳方法是什么。 (没有任何Base64或任何转换)?

将图像作为 Stream 而不是ByteArray发送会给服务器带来开销并使用大量内存吗?

1 个答案:

答案 0 :(得分:1)

ByteArray并不是一个好习惯。序列化ByteArray太慢了。为了解决这个问题,建议将ByteArray转换为Base64String。但如果你不想增加尺寸,你可以流式传输图像。 发送流没有开销但你不能用你的流序列化任何其他内容。在你的情况下它可以。