当前位置: 首页 > 知识库问答 >
问题:

HTTP头或响应正文中的Rest错误消息?

董花蜂
2023-03-14

我有一个REST服务,它暴露在iPhone和Android客户端上。目前我遵循HTTP代码200、400、401、403、404、409、500等。

< HTTP/1.1 400 Bad Request - Missing Required Parameters.
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked

还是通过JSON将其放在响应体中更好?

< HTTP/1.1 400 Bad Request
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: application/json
{ "error" : "Missing Required Parameters" }

共有1个答案

童铭晨
2023-03-14

引用400.x错误代码的HTTP规范:

状态代码的4xx类用于客户端似乎出错的情况。除了响应一个HEAD请求时,服务器应该包括一个实体,其中包含对错误情况的解释,以及它是暂时的还是永久的情况。这些状态代码适用于任何请求方法。用户代理应向用户显示任何包含的实体。

最佳实践是将错误消息作为一个实体包含在HTTP响应的正文中--不管是JSON、纯文本、格式化的HTML还是您想要使用的任何其他格式。

 类似资料:
  • 使用HTTP响应头传递信息是一件非常“酷”的事。但遗憾的是,在传递中文时,会出现乱码问题。其实要解决这个问题也非常简单,只需要对要传输的中文进行编码,然后在接收它们的客户端再对其进行解码即可。 例子 : 用HTTP响应消息头传输中文信息 1. 实例说明 在本程序中通过HTTP响应消息头分别传输英文消息、中文消息和被编码后的中文消息(对中文消息的编码可以采用多种方式,在本例中采用了URL编码的方式,

  • 我想知道当服务器端发生错误时返回是否正确(错误详细信息将包含在响应主体中)。 例子: 我们正在发送 这是不是正确的行为?我们是否应该将状态代码更改为200以外的值?

  • 问题内容: 当我走时,我收到以下错误消息: 安装的Docker版本: 使用以下方式安装: 我已确保网络存在并且可以访问其他站点。请帮忙 更新1:问题不能是设置MTU,因为几天后我可以从Docker集线器中将映像拉回到同一台机器上。 由于我在家庭网络中,因此该问题也可能不是HTTP_PROXY 问题答案: 该错误消息几乎没有误导性。问题不在于字符无效,而是网络配置错误。我有一个LAN接口和一个WLA

  • 我是JMeter的新手。我已经设置了HTTP请求采样器来发送GET请求到Google.com。我得到的反应是200。但我找不到响应头,它显示了响应中的cookie。我想在下一个请求中使用该cookie值。

  • 问题内容: 在Java中,当HTTP结果为404范围时,此代码将引发异常: 就我而言,我碰巧知道内容是404,但无论如何我还是想阅读响应的内容。 (在我的实际情况下,响应代码为403,但是响应的主体说明了拒绝的原因,我希望向用户显示该原因。) 如何访问响应正文? 问题答案: 这是错误报告(关闭,无法修复,不是错误)。 他们的建议是这样编码:

  • 我有一个Java Servlet类,当我的应用程序中存在身份验证问题时,我尝试在其中设置错误状态。但是,问题是,我可以设置错误状态,但无法在响应正文中设置错误消息。以下是我的尝试: 授权筛选器。Java语言 例外处理程序。Java语言 我的Trowable包含要显示的正确HTTP状态。我尝试了两件事: 我试着按照这个方法做:public ultsendError(int sc,java.lang.