响应较大的HTTP状态代码413/400

时间:2020-10-06 00:39:38

标签: api http apigee

当响应的大小较大时,我将遇到错误,我们可以通过在Apigee中启用流传输来解决以下问题(当前超出范围,因为所有上行流都需要工作)

The error pasted below: {"Envelope":{"Body":{"Fault":{"faultcode":"soap:Server","detail":{"source":{"errorcode":"protocol.http.TooBigBody"}},"faultstring":"Body buffer overflow","faultactor":{}}},"encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/"}

当我们从下游系统得到以上错误时,我正在计划提出错误。什么是 HTTP状态代码

413请求实体太大

400“消息:响应很大”

5 个答案:

答案 0 :(得分:3)

我的投票赞成 500-内部服务器错误,正文中有一些细节。 4xx错误代码指示客户端在进行一些修改后应重试该请求。此处似乎并非如此。

答案 1 :(得分:1)

在这种情况下,如果您将/将无法执行任何操作以将具有预期正文属性的响应返回给客户端,则应返回500,并显示一条正确消息。 我在响应的某些部分看到服务返回200和问题的详细信息,并以好消息(好消息)作为errorMessage或类似情况下的内容。 这里的想法是传播异常,以便客户端应用程序可以向最终用户发出正确的消息,因此,应让客户端应用程序了解消息的问题。

答案 2 :(得分:1)

好吧,看来应该是500错误。而且,作为一种好的做法,您应该像在此之前一些睿智的人所说的那样,在正文中添加一些细节或一个良好而清晰的信息。

所有4xx错误均表示系统正常,但您的要求不正确。一些例子:

  • 400:由于客户端错误,将不会处理请求。过去,此代码仅用于语法错误,但如今更为通用:https://tools.ietf.org/html/rfc7231#section-6.5.1
  • 403:表示服务器可以理解该请求,但拒绝对其进行授权。
  • 415:不支持有效载荷格式
  • 422:请求格式和语法都可以,但是服务器不会处理它。通常,当验证失败或某些语义不正确时,可以提出一个好的建议。更多:https://tools.ietf.org/html/rfc4918#section-11.2

您可以检查所需的所有RFC,并且在这种情况下不会找到4xx错误。除非您解释不正确,否则用户应以任何方式更改请求以获得正确的结果。在这种情况下,422可能是您的选择,例如,如果请求的格式和语法正确,但是用户请求的资源过多。

答案 3 :(得分:0)

在这种情况下,

HTTP 413 Payload Too Large的状态代码为错误,因为它告诉客户端您正在发送大量请求,并导致混乱。 在这种情况下,
HTTP 400 Bad Request的状态代码为错误,因为请求正确并且服务器知道它想要得到什么,但是由于自身的限制,服务器不想回答这样的响应大小。

HTTP 403 Forbidden应该是您的选择

服务器理解了该请求,但拒绝执行该请求。

注意,在大多数情况下,最好使用正确的响应状态代码和自定义消息来告知拒绝请求的原因。

答案 4 :(得分:-1)

如果我正确理解了您的问题,则您的API服务器无法完全满足收到的请求,因为对该请求的响应太大。

在这种情况下,我们应该返回 503-服务不可用。这样,我们可以表明我们的API服务器无法暂时响应该请求,这不是API服务器的完整停机时间,并且并非在所有时间都发生在所有请求上。仅当响应/有效负载过大且选择性请求过大时,才会发生这种情况。由于我们的API服务器当时无法处理和响应请求,因此应该可以。