如果我有一个返回图像的网络服务,是否有一种标准方法可以让它返回一些结构化数据(在最简单的情况下,是一个附加的字符串或数字)?
参见this question返回图像的 Web 服务的 PHP 示例。 (但我现在的问题不是特定于 PHP 的。)
可能的解决方案(大多不是很令人满意):
- 将额外数据放入图像的元数据中。
- 将额外数据放入 HTTP header 中。
- 让网络服务返回一个随机数 URL,可在有限的时间内从中获取图像。
- 对图像进行 Base64 编码,使其成为 JSON 或 XML 数据结构中的巨大字符串字段。 (感谢Carles和Tiago。)
你会怎么做?
(我真的不想将 Web 服务分成两个单独的调用,因为 Web 服务需要大量参数,并且将它们全部发送两次似乎很浪费。)
最佳答案
HTTP header 是一个可行的选择,因为它们可以轻松地在服务器端和客户端进行解析。您可以做的另一件事是设置一个 302,将其重定向到 URL 中包含图像和数据的 URL(例如 ->
这对用户来说是透明的,并且大多数 API 客户端都可以工作(因为它们处理重定向)
关于web-services - 返回图像和数字的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650396/