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;
}

由下图,可以看到调用该接口时,接受到的参数为 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;
}

参考

目录
相关文章
|
C语言 C++
【C语言】rand()函数(如何生成指定范围随机数)
【C语言】rand()函数(如何生成指定范围随机数)
1093 0
|
应用服务中间件 网络安全 nginx
Nginx配置WebSocket 【支持wss与ws连接】
Nginx配置WebSocket 【支持wss与ws连接】
11581 1
|
小程序 数据库 开发者
小程序云开发联表数据查询以及云函数中的应用
1、联表查询 (1)lookup联接两个表格 (2)使用match进行条件查询 (3)直接返回学生成绩平均值 (4)只显示teacher和score这两个值 2、在云函数中的应用 (1)在云数据库中添加数据 (2)创建云函数并初始化数据库 (3)编辑云函数入口函数 (4)上传部署云函数
1460 0
小程序云开发联表数据查询以及云函数中的应用
|
6月前
|
安全 JavaScript API
OpenClaw进阶保姆级指南!阿里云/本地部署+百炼API配置+集成7个高价值Skill 及实战避坑指南
OpenClaw爆火后,不少用户陷入“技能焦虑”——GitHub上1000+Skills让人眼花缭乱,盲目安装后不仅没提升效率,反而因权限风险、功能冲突、稳定性问题陷入困扰。参考文章作者翻遍GitHub后发现,真正实用、安全、稳定的技能仅占少数,多数只是Demo级工具,甚至存在误删文件等安全隐患。
846 10
|
7月前
|
机器学习/深度学习 编解码 人工智能
从 Genie 2 到 Genie 3:一年间世界模型发生了什么
2024–2026年,Google DeepMind的Genie系列从2D概念验证(Genie 1)跃升至3D可交互世界(Genie 2),再进化为支持自然语言事件调控、多模态输入与分钟级记忆的Genie 3;2026年1月以Project Genie正式商用,标志世界模型迈入实用化新阶段。
706 2
|
存储 机器学习/深度学习 弹性计算
阿里云服务器ECS计算型c9i规格族性能与特点、配置性能参数表
阿里云ECS计算型c9i实例基于Intel® Xeon® Granite Rapids处理器,主频3.2GHz,全核睿频3.6GHz,提供稳定高性能计算能力。支持NVMe协议、vTPM安全加密,适用于机器学习、大数据分析、高性能计算等场景,具备高安全、低延迟、强扩展等优势。
|
人工智能 IDE 搜索推荐
惊!GitHub Copilot或将颠覆传统编程,程序员即将失业?
GitHub Copilot引爆编程界!这个AI编程神器将彻底改变你的编程生涯!
惊!GitHub Copilot或将颠覆传统编程,程序员即将失业?
|
JSON 前端开发 Java
【Bug合集】——Java大小写引起传参失败,获取值为null的解决方案
类中成员变量命名问题引起传送json字符串,但是变量为null的情况做出解释,@Data注解(Spring自动生成的get和set方法)和@JsonProperty
|
存储 关系型数据库 定位技术
WebGIS入门
WebGIS入门
716 0