【发布时间】:2017-07-24 09:07:42
【问题描述】:
我正在开发一个可以返回图像的 API。如果在 API 中遇到任何错误,尽管我可以发出带有文本内容或根本没有内容的 HTTP - 500 响应(或类似的错误代码),但我需要能够返回带有错误表示的图像内容图像本身。换句话说,当遇到任何错误时,我会创建错误文本的图像表示并返回图像,http 状态代码为 500 - Internal Server Error。我正在使用 ASP.net Web API,我能够创建一个 HTTP 500 响应,其中包含图像内容和 mime 类型为“image/jpg”。
带有纯文本响应的 Http 500:
HTTP/1.1 500 Internal Server Error
Content-Length: 14
Content-Type: text/plain; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 24 Jul 2017 06:43:55 GMT
Error Occured!
带有图像内容的 Http 500:
HTTP/1.1 500 Internal Server Error
Content-Length: 622485
Content-Type: image/jpg
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 24 Jul 2017 06:44:56 GMT
<<ImageContent>>
虽然有可能,但我需要知道这种方法是否符合 Web API 的最佳实践。谢谢。
【问题讨论】:
-
您可以添加一个错误处理程序(它是全局的),或者在操作方法中返回其异常处理程序中的图像。
-
谢谢理查德。但不幸的是,你没有回答这个问题。我需要知道这种在错误响应中发送图像的方法是否可以
-
它会起作用吗:取决于您的客户(我无法评论)。对于一般的 WebAPI(即第 3 方客户端),我会说这很糟糕:通常 API 使用者将是代码,并且很难从图像中获取数据。
标签: asp.net-web-api http-status-codes