You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

REST服务GET接口报415 Unsupported Media Type错误求助

问题排查与解决方案

问题根源

你的GET接口错误地添加了@Consumes(MediaType.APPLICATION_JSON)注解:

@GET
@Path("/alert")
@Consumes(MediaType.APPLICATION_JSON) // 核心问题所在
@Produces(MediaType.APPLICATION_JSON)
Response getAlert(@NonNull @Context HttpServletRequest servletRequest,
                  @NonNull @QueryParam("merchantId") String merchantId,
                  Map<String, String> requestContext);

HTTP规范中,GET请求不携带请求体,而@Consumes注解的作用是声明接口可接收的请求体媒体类型。当浏览器直接访问、axios发送GET请求时,即便设置了Content-Type: application/json,也不会发送实际的JSON请求体,服务器因无法匹配到可消费的媒体类型,便返回Unsupported Media Type错误。

至于fetch请求能正常工作,是因为部分JAX-RS实现(如Jersey)在GET请求无请求体时,会忽略@Consumes的校验逻辑,属于特殊场景下的兼容处理,并非标准行为。

解决方案

直接移除GET接口上的@Consumes(MediaType.APPLICATION_JSON)注解即可:

@GET
@Path("/alert")
@Produces(MediaType.APPLICATION_JSON)
Response getAlert(@NonNull @Context HttpServletRequest servletRequest,
                  @NonNull @QueryParam("merchantId") String merchantId,
                  Map<String, String> requestContext);

你的接口参数均通过URL查询参数(@QueryParam)和上下文获取,完全不需要消费请求体,@Consumes注解在此属于冗余且错误的配置。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:05:06