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

SpringBoot 出现 Content type ‘application/x-www-form-urlencoded;charset=UTF-8’ not supported问题点1:如果Content-Type设置为“application/x-www-form-urlencoded;charset=UTF-8”无论是POST请求还是GET请求都是可以通过这种方式成功获取参数,但是如果前端POST请求中的body是Json对象的话,会报上述错误。请求中传JSON时设置的Content-Type如果是application/json或者text/json时,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

问题点1:

如果Content-Type设置为“application/x-www-form-urlencoded;charset=UTF-8”无论是POST请求还是GET请求都是可以通过这种方式成功获取参数,但是如果前端POST请求中的body是Json对象的话,会报上述错误。

请求中传JSON时设置的Content-Type 如果是application/json或者text/json时,JAVA中request.getParameter(“”)怎么也接收不到数据。这是因为,Tomcat的HttpServletRequest类的实现类为org.apache.catalina.connector.Request(实际上是org.apache.coyote.Request)。

问题点2:

当前端请求的Content-Type是Json时,可以用@RequestBody这个注解来解决。@RequestParam 底层是通过request.getParameter方式获得参数的,换句话说,@RequestParam 和request.getParameter是同一回事。因为使用request.getParameter()方式获取参数,可以处理get 方式中queryString的值,也可以处理post方式中 body data的值。所以,@RequestParam可以处理get 方式中queryString的值,也可以处理post方式中 body data的值。@RequestParam用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST。

@RequestBody接受的是一个json对象的字符串,而不是Json对象,在请求时往往都是Json对象,用JSON.stringify(data)的方式就能将对象变成json字符串。

总结:

前端请求传Json对象则后端使用@RequestParam;

前端请求传Json对象的字符串则后端使用@RequestBody。

本文大部分内容来自:使用SpringBoot做Javaweb时,数据交互遇到的问题

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157768.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月27日 下午12:00
下一篇 2022年7月27日 下午12:00


相关推荐

  • Java8新特性学习之一:lambda表达式入门

    Java8新特性学习之一:lambda表达式入门

    2021年8月3日
    74
  • DirectSound的应用

    DirectSound的应用

    2021年12月14日
    39
  • CORBA概述

    CORBA概述CORBA CommonObject 公共对象请求代理体系结构 是由 OMG 组织制订的一种标准的面向对象应用程序体系规范 或者说 CORBA 体系结构是 OMG 为解决分布式处理环境 DCE 中 硬件和软件系统的互连而提出的一种解决方案 OMG ObjectManage 对象管理组织 是一个国际化的 开放成员的 非盈利性的计算机行业标准协会 该协会成立于 1989 年 其职责是为应用开发提供一个公共框架 制订工业指南和对象管理规范 加快

    2026年3月26日
    2
  • HQChart实战教程41 -新浪+腾讯A股数据源对接 – uniapp版本 (源码付费)「建议收藏」

    HQChart实战教程41-新浪+腾讯A股数据源对接-uniapp版本数据源支持周期平台支持demo安卓apk下载源码售价580元效果截图HQChart代码地址数据源使用公开的新浪+腾讯的A股票Api数据,h5页面需要自己配代理跨域.app直接就可以访问,无需自己提供数据后台.支持周期分时,5日,日K,周K,1分钟K,5分钟K,15分钟K,30分钟K,36分钟K平台支持uniapp开发,支持h5和appdemo安卓apk下载https://opensource

    2022年4月15日
    90
  • 面试必备:秒杀场景九个细节

    面试必备:秒杀场景九个细节

    2022年2月19日
    51
  • 大数据技术的发展趋势

    大数据技术的发展趋势英国牛津大学教授维克托·迈尔-舍恩伯格在其所撰写的《大数据时代》中表述,大数据时代是“已经发生的未来”,而在这个已经发生的未来里,没有旁观者。作为时代发生的必然产物,大数据正加速渗透至我们的日常生活,正完成对各传统领域的颠覆。本文从大数据时代的特点出发,为读者介绍目前的大数据技术的发展趋势以及大数据的生态体系。大数据时代的特点和市场规模大数据时代两个特点。第一,大数据技术以开源为主,迄今为止,尚未形成绝对技术垄断,即便是IBM、甲骨文等行业巨擘,也同样是集成了开源技术和该公司已有产品而已。开源技

    2022年5月12日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号