SpringBoot Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

当你在 Spring Boot 应用中看到 Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 错误时,通常意味着服务器期望接收的请求内容类型与客户端发送的不一致。通常在 RESTful API 场景下,服务器可能期望接收 application/json 或其他内容类型,但客户端发送了 application/x-www-form-urlencoded 类型的数据。

解决方案:

  1. 在客户端修改 Content-Type:
    如果服务器期望接收其他类型(如 application/json),你可以修改客户端请求的 Content-Type 为正确的类型。

    例如,使用 application/json

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    
  2. 修改 Spring Boot 控制器:
    如果你希望服务器能够接收 application/x-www-form-urlencoded 类型的数据,可以在 Spring Boot 控制器中使用 @RequestParam 来处理表单数据,或者使用 @RequestBody 处理适当的媒体类型。

    使用 @RequestParam 的例子:

    @PostMapping(value = "/endpoint", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    public ResponseEntity<?> handleFormData(@RequestParam Map<String, String> formData) {
        // 处理表单数据
    }
    

    使用 @RequestBody 的例子:

    @PostMapping(value = "/endpoint", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    public ResponseEntity<?> handleFormData(@RequestBody MultiValueMap<String, String> formData) {
        // 处理表单数据
    }
    
  3. 添加消息转换器:
    如果你的控制器需要支持多种内容类型,包括 application/x-www-form-urlencoded,确保你的 Spring Boot 应用配置了 FormHttpMessageConverter

    例如:

    @Configuration
    public class WebConfig implements WebMvcConfigurer {
    
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            converters.add(new FormHttpMessageConverter());
            converters.add(new MappingJackson2HttpMessageConverter());
        }
    }
    

根据具体的需求选择相应的解决方案。如果你需要处理 application/x-www-form-urlencoded 类型的数据,请相应调整服务器配置或客户端请求的内容类型。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值