TLDR;如何使用Spring响应实体
在正文中发送文本消息以及304状态代码?
背景
我正在使用Spring Boot编写一个REST API。在某些endpoint中,我想返回:
200 正常
,身体成功
,304
未修改,正文未修改。
我的endpoint使用ResponseEntity
(在kotlin中)的方式如下:
@PutMapping("/test")
fun modifyStuff(): ResponseEntity<String> {
if (someCondition)
// "not modified" not sent in the body
return ResponseEntity("not modified", HttpStatus.NOT_MODIFIED)
// using OK, it works
return ResponseEntity("success", HttpStatus.OK)
}
问题
每当我用状态代码创建< code>ResponseEntity时!= 200,正文不发(空正文)。将< code>HttpStatus更改为< code>OK会使消息再次显示...我不想为not modified创建错误处理程序,因为这肯定不是错误。
早些时候有较早的标准RFC2616,现在您可以参考较新的RFC 7230-7237,它们都提到304响应不应该包括正文。
具体来说,较旧的RFC2616表示它“必须不包含正文”,而较新的RFC7230表示“所有1xx(信息性)、204(无内容)和304(未修改)响应都不包含消息正文”。最终,一些服务器可能会发送或接受具有此状态的正文,但spring ResponseEntity并非如此。
我这样做是为了尝试我的UserRestController,但我在响应中什么也没有得到,还有一个200状态码。 我尝试了很多方法,但都没有找到答案。。。 这是我用来测试分类控制器的代码 当我运行单元测试时,会得到以下响应:
我使用Spring中的webClient从GraphQL WebService中获取数据。此代码位于一个泛型方法中,该方法将响应体解码为不同类型的对象。如果响应是预期的类型,则它运行良好。 现在我想处理来自WebService的错误。因此,我的问题与此非常相似:Spring Webflux:Webclient:Get body on error我发现建议使用onStatus,但我的问题是,即使re
我正在使用 webClient 调用调用服务 1,该服务 1 调用服务 2,然后服务 2 从数据库中获取数据并返回它们。问题:我有 onStatus 来捕获错误的响应,因此响应具有 400 或 500 个状态代码。代码示例: 在一些边缘情况下,响应带有200个状态代码,响应体有失败消息和失败原因。那么我如何检索它,然后用该失败消息抛出异常(在其他服务返回的响应对象中)。因为它试图映射并抛出错误。目
问题内容: 我有一台服务器,从同一URL返回HTTP状态代码200、201和202。在Chrome浏览器中,我已经通过“网络”调试面板确认了状态代码是否符合我的预期(即200、201或202)。我依靠该状态码来确定下一步。 我希望jQuery(1.5.2版)AJAX的回调请求设置为服务器发送的状态代码。但是,即使服务器发送的代码是201或202,状态代码也始终为200。 换句话说,无论服务器发送什
本文向大家介绍HTTP 状态码 304和 200 的区别?相关面试题,主要包含被问及HTTP 状态码 304和 200 的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 状态码200:请求已成功,请求所希望的响应头或数据体将随此响应返回。即返回的数据为全量的数据,如果文件不通过GZIP压缩的话,文件是多大,则要有多大传输量。 状态码304:如果客户端发送了一个带条件的 GET 请求且
我正在做一个新项目,我想实现一个“等到网站打开”功能,如果http://switch-check.cf/index.php打开,然后继续。 现在,在我的帮助下。htaccess和php我尽了最大的努力。禁止访问php文件。因此,如果你试图访问我提到的网页,你应该得到一个 403拒绝访问 因此,我使用urllib(也尝试了请求)查看网站是否已打开或仍处于禁止访问状态然而,无论我尝试什么,我总是得到2