Spring Boot中Delete方法调用第三方API时如何传递RequestBody
DELETE 请求携带请求体的实现可行性说明
这个需求完全可以实现,具体情况说明如下:
1. 协议层面的支持
HTTP 标准从未禁止 DELETE 请求携带请求体,仅在早期部分客户端、服务端、代理服务的实现中,存在默认忽略 DELETE 请求请求体的情况。核心前提是你调用的第三方API明确支持在DELETE请求中接收请求体参数,只要API文档有相关说明,就可以按要求传递。
2. 常用开发工具的支持
各类主流请求工具都原生支持给DELETE请求配置请求体,常见示例如下:
- 前端
fetch实现:
fetch('目标API地址', { method: 'DELETE', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ // 你要传递的请求体参数 }) })
- Python
requests库实现:
import requests requests.delete( url="目标API地址", json={ # 你要传递的请求体参数 } )
- Java OkHttp 实现:
MediaType JSON = MediaType.get("application/json; charset=utf-8"); String body = "{\"key\":\"value\"}"; Request request = new Request.Builder() .url("目标API地址") .delete(RequestBody.create(body, JSON)) .build();
3. 注意事项
- 如果第三方API未明确说明支持DELETE带请求体,不要强制使用,这种情况优先选择API提供的其他传参方式,比如URL查询参数、路径参数。
- 部分代理、CDN服务会默认丢弃DELETE请求的请求体,如果你遇到传了参数但服务端无法接收的问题,需要排查中间链路的配置。
内容的提问来源于stack exchange,提问作者PKS
相关产品推荐
相关产品推荐

