当响应的大小较大时,我将遇到错误,我们可以通过在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“消息:响应很大”
答案 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服务器当时无法处理和响应请求,因此应该可以。