【问题标题】:How to transfer images through REST API如何通过 REST API 传输图像
【发布时间】:2016-02-21 06:47:48
【问题描述】:

我有一个移动应用程序需要显示将通过 REST API 发送给它的图像。如何通过 API 传输图像?我正在使用 C# 开发一个 ASP.net Web API。

我尝试将图像转换为 base64,然后通过 API 将其发送到移动设备,但这似乎需要很长时间,因为我必须一次将大量图像发送到我的移动设备。

我需要通过 API 将图像文件和其他一些数据发送到移动设备,然后 Phonegap android 会将其保存在本地数据库中以供进一步使用。 任何帮助将不胜感激。

【问题讨论】:

  • 您可以从您的专用数据存储(例如Amazon S3Azure Blob Storage)生成指向图像的公共链接,然后仅通过API 发送链接。
  • 但在移动应用端,我不想从网络访问图像,因为应用应该可以离线工作(没有互联网)
  • 这样你就可以为你的图像建立一个本地缓存存储。但第一次你必须取!

标签: android api rest asp.net-web-api


【解决方案1】:

如果您想在一个请求中将图像与其他数据一起发送,使用 base64 是最好的方法。

您可以考虑使用 gzip 压缩图像数据以减小大小。另一种方法是将缩小尺寸的图像发送到您的 android 客户端,同时附带一个完整尺寸图像的 URL。这使您可以快速向用户显示结果,然后将大图像从服务器加载到后台任务中,并替换数据库中的小图像。

【讨论】:

  • Android 不会一直访问 inetnet。仅在应用程序的第一次运行期间或每当用户想要更新数据时(如果有互联网连接..),将调用该 api,该 api 将从移动本地数据库加载/更新数据。因此,在后台加载全尺寸图像将不起作用。 :-(
  • 那么没有真正的替代方法可以一次加载所有图像。正如我所说,您可以压缩图像或使用质量较低/压缩率较高的 JPEG 来减小文件大小
【解决方案2】:

如果你想通过 REST Api 发送图像或文件,那么它应该通过 Multipart 请求来实现。 请参考here 它如何让您的工作变得轻松。

您也可以使用Retrofit 来创建多部分请求。

【讨论】:

  • 我正在 MVC 中构建 API。
  • 模型视图控制器的 MVC?还是别的什么?
  • 是的。 ASP.net 中的模型视图控制器 Web API
  • 我对 ASP .net 了解不多,但我相信它也会支持多部分。
猜你喜欢
  • 2012-07-24
  • 2022-06-30
  • 2017-10-23
  • 1970-01-01
  • 1970-01-01
  • 2019-12-28
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多