繁体   English   中英

即使代码没有错误,REST API调用也会返回400

[英]REST API call returning 400 even if code is not having error

该图显示了API的错误,我制作了一个REST API,该API处理一个文件,然后将该文件上传到第三方,然后它将进行两个数据库操作。 第一个是选择,第二个是插入。

在少数情况下,我得到200,但在某些情况下,我得到400。现在,当我达到400时,控件仅在选择方法之前出现,并且该方法没有错误。

因此,看起来请求正在超时或发生什么。 任何人都可以建议正确的方法吗? 我应该在哪里更改超时时间?

成功日志 -[2019-04-11 10:09:26] [T] [http-nio-10.0.0.219-7000-exec-11] [Controller]在文件夹[2019-04-11 10:09中上传的文件: 26] [T] [http-nio-10.0.0.219-7000-exec-11] [Controller]从新的NEW状态检查过渡是否有效-已启动[2019-04-11 10:09:26] [T] [ http-nio-10.0.0.219-7000-exec-11] [控制器]调用功能以在DB的DIGIO_RESPONSES中保存响应[2019-04-11 10:10:11] [T] [http-nio-10.0.0.219- 7000-exec-14] [控制器] [LFT] [userId = 12] POST 200 /存储/上传

FAILURE logs -2019-04-11 10:10:11] [T] [http-nio-10.0.0.219-7000-exec-14] [Controller]文件已上传至文件夹[2019-04-11 10:10:11 ] [T] [http-nio-10.0.0.219-7000-exec-14] [Controller]从新的NEW状态检查过渡是否有效-已启动[2019-04-11 10:10:11] [T] [http -nio-10.0.0.219-7000-exec-14] [控制器] [LFT] [userId = 12] POST 400 /存储/上传

这是一个错误的请求:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/400

从上一页:

它表示服务器由于某些被视为客户端错误的原因(例如,格式错误的请求语法,无效的请求消息框架或欺骗性的请求路由)而无法或不会处理该请求。

客户不应未经修改重复此请求。

这不是超时。 您需要发布更多信息,并查看您的Web服务器日志,以了解请求不好的原因,可能有很多原因。

No issue with timeout 

400错误的请求由于明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息框架或欺骗性的请求路由),服务器无法或不会处理请求。

504网关超时服务器正在充当网关或代理,并且没有收到上游服务器的及时响应。

400表示请求格式错误。 换句话说,客户端发送到服务器的数据流不遵循规则。

对于具有JSON有效负载的REST API,根据服务的API规范,当JSON在某种程度上无效时,您可能会得到400。


Good Practice:

如果请求成功,则您可能会获得2xx代码(重定向为3xx )。 如果服务器上发生内部逻辑错误,则返回5xx 如果客户请求中有任何错误,则您可能会得到4xx代码。

在Spring中对400个响应代码进行故障排除是我生存的祸根。 让我惊讶的是,在DEBUG中吞并或记录异常的难易程度。

在这里查看我的答案。 为特定的Spring软件包启用DEBUG日志记录已帮助我在许多场合下解决了此类无声故障。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM