Jersey REST 服务中 DELETE 请求无法接收 entity body 作为参数

简介:

问题

在用 Jersey 构建 REST 服务时,当试图用 Ajax 传递一个 JSON 对象 作为参数执行 DELETE 方法时,后台接收到的对象为 null.

服务器的资源类写法为

@DELETE @Path("pojojson")
@Consumes(MediaType.APPLICATION_JSON)
public String deletePojoJsonBody(@QueryParam("name") String name ) {
 return "You delete " + name;
}
AI 代码解读

由下图,可以看到调用该接口时,接受到的参数为 null

原因

在新版的 HTTP 1.1 协议里面有如下描述:

A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.

中文意思是:

DELETE 请求消息中的 payload (metadata 和 body content) 没有定义语义;在DELETE 请求上发送一个 payload body 可能会导致一些现有的实现拒绝该请求。

即,不应该在 DELETE 请求中使用 entity body 来传递参数.

解决

修改代码,将参数写在 URI 里面即可:

@DELETE @Path("pojojson")
@Produces(MediaType.TEXT_PLAIN)
public String deletePojoJson(@QueryParam("name") String name ) {
 return "You delete " + name;
}
AI 代码解读

参考

目录
打赏
0
0
0
1
298
分享
相关文章
Nestjs(三)接收参数 @Query @Body @Param(post、get 、put、delete ...)
Nestjs(三)接收参数 @Query @Body @Param(post、get 、put、delete ...)
631 4
POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 400 for URL
POST 请求出现异常!java.io.IOException: Server returned HTTP response code: 400 for URL
4353 0
Feign调用把GET请求自动转成POST请求解决:Request method 'POST' not supported
Feign调用把GET请求自动转成POST请求解决:Request method 'POST' not supported
Kam
2287 0
PUT 请求和 POST 请求有什么区别?
【10月更文挑战第25天】PUT请求和POST请求在HTTP协议中有着不同的功能和应用场景,开发者需要根据具体的业务需求和资源操作的性质来选择合适的请求方法,以确保客户端与服务器之间的交互准确、安全且符合预期。
【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart
【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart
72 2
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)
140 0
|
11月前
|
API
webclient在delete请求时携带request body
webclient在delete请求时携带request body
160 0
JavaWeb - HTTP 请求中 Post 和 Put 区别
JavaWeb - HTTP 请求中 Post 和 Put 区别
283 0
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
105 0
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)4
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)4
110 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等