客户端发送的请求语法错误 ().+Spring , RESTClient

2023-11-24

我正在使用 JSON 对象使用 Spring MVC。当我尝试从 RESTClient 发送 JSON 对象时,我得到

HTTP 状态 400 - 客户端发送的请求在语法上不正确 ()。

这是我的控制器

ObjectMapper mapper=new ObjectMapper();
@RequestMapping(value = "/addTask", method = RequestMethod.GET)
       public ModelAndView addTask(@RequestParam("json") String json) throws JsonParseException, JsonMappingException, IOException 
       {
          System.out.println("Json object from REST : "+json);
          Task task=(Task) mapper.readValue(json, Task);
          service.addService(task);
          return new ModelAndView("Result");
       }

我的请求网址:http://localhost:8080/Prime/addTask

我的 Json 对象:

{“taskName”:“什么都不做”,“taskId”:1234,“taskDesc”:“什么都不做”}

我还尝试在 RESTClient 中指定“Content-Type: application/json”,但仍然收到相同的错误


我最近在请求正文中使用 JSON 字符串时遇到了类似的情况,并使用了与您非常相似的 Spring 设置。就我而言,我没有指定 String 参数并自己反序列化它,而是让 Spring 这样做:

   @RequestMapping(value = "/myService/{id}", method = RequestMethod.POST)
   @ResponseBody
   public void myService(@PathVariable(value = "id") Long id, @RequestBody MyJsonValueObject request) {
   ..
   }

我收到 HTTP 错误 400“客户端发送的请求在语法上不正确”响应。直到我意识到没有默认构造函数@RequestBody MyJsonValueObject所以反序列化时出现问题。但这个问题是以这种方式呈现的。

因此,如果您使用 POST 和对象,并收到这样的错误,确保你有一个默认的构造函数!添加一些 JUnit 以确保您可以反序列化该对象。

Note:我并不是说这是您收到此错误的唯一原因。原始情况仅使用 String (它确实有一个默认构造函数!),所以它有点不同。但在这两种情况下,请求 URI 似乎已映射到正确的方法,并且在尝试从 HTTP 请求中提取参数时出现了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

客户端发送的请求语法错误 ().+Spring , RESTClient 的相关文章

随机推荐

  • 获取所选文本的父元素

    是否可以获取页面中所选文本的父元素 例如 div class someparent Selection of this text should refer to the someparent class span class spanpar
  • 是否可以在 Xcode 4.3 中使用 NSArray、NSDictionary 和 NSNumber “文字”? (LLVM 4.0)

    显然 新的 Objective C 文字已经进入了铿锵的树干 从而揭开了保密协议的神秘面纱 我的问题 我怎么能够 以上帝的名义 在 Xcode v4 3 中使用这些构造 见下文 如果没有 并且我一直在等待 XCode 4 4 OSX 10
  • 如何从两个已排序数组中的对中获取 K 个最小的乘积?

    给出了两个排序数组 我们必须从这些数组的对中找到 K 个最小的乘积 我能想到一个 mnlogk 解决方案 但即使数组未按排序顺序 此解决方案也有效 我们可以利用这个排序顺序并找到更好的解决方案吗 我尝试使用大小为 k 的最大堆来获取 mnl
  • TR的高度如何确定?

    是否可以固定表格上行 tr 的高度 当我缩小浏览器窗口时 问题就会出现 一些行开始播放 并且我无法修复行的高度 我尝试了几种方法 tr width 20 tr style height 20px td height 20 td style
  • Docker + Rspec + Capybara - 参数 [0] 未定义

    我试图让我的规格在 docker 中无头工作 它们在我的 mac 上本地运行良好 但是当我在 docker 容器内运行它们时 我收到此错误 重复多次 Selenium WebDriver Error JavascriptError argu
  • Laravel 4:对如何使用 App::make() 感到困惑

    我正在尝试遵循本文中概述的存储库模式http code tutsplus com tutorials the repository design pattern net 35804 highlighter 174798我正在尝试使用 App
  • 在 web.xml 中将 servlet 设置为默认主页[重复]

    这个问题在这里已经有答案了 我有一个 servlet 注册在web xml如下
  • PHP 中的连接 ECHO 语法

    我做了一个小功能 WordPress 使用echo Some code switch linktype case next echo p class next previous post link link prevthumbnail p
  • 在跨平台应用程序中使用 snprintf

    我正在编写一个 C 程序 预计可以使用所有主要编译器进行编译 目前我正在 Linux 机器上的 GCC 上进行开发 并在提交代码之前在 MSVC 上进行编译 为了使交叉编译变得容易 我正在编译 ansi and pedantic旗帜 这很有
  • ASP.NET Identity(使用IdentityServer4)获取外部资源oauth访问令牌

    我已经阅读了 IdentityServer4 的文档 并将其设置为使用 Microsoft Office 365 作为登录提供程序 当用户登录后 我想创建一个按钮 他可以在其中允许我的应用程序使用 graph microsoft com 的
  • 以编程方式获取代码的 Big-O 效率

    我想知道是否有任何自动方法可以 至少粗略地 确定给定函数的 Big O 时间复杂度 如果我绘制 O n 函数与 O n lg n 函数的图表 我想我将能够直观地确定哪个是哪个 我认为必须有一些启发式解决方案可以自动完成此操作 有任何想法吗
  • “import foo.*”不应该包含子包“foo.bar.*”吗?

    在学习 Java 时 我想到了许多教程中相当令人困惑的属性 考虑示例教程中的以下两个导入 import java awt import java awt event 第一行显然导入了 java awt 包 第二行导入了 awt 的子包 但是
  • mongoose.connection() 和 mongoose.createConnection() 之间的混淆

    我已经研究了 mongoose 三天 对这两种方法的使用有点困惑 我知道 mongoose connection 将来会被弃用 问题是 当我尝试转换 从 mongoose connection 到 mongoose createConnec
  • GCDAsyncUdpSocket 与组播发送和接收

    在第一种方法中 我创建客户端 服务器应用程序 基于样本项目 将一些数据发送到服务器 Legend sender address reciver ip port reciver port reciver address null since
  • 具有不可编辑/不可取消后缀的 EditText [重复]

    这个问题在这里已经有答案了 我为我的一项活动创建了一个布局 用户可以在其中的某些 EditText 小部件中插入值 我需要其中一些 EditText 必须具有不可编辑的后缀 如 cm mm 等 用户插入值后 我将解析这些 EditText
  • JavaScript 在 ul 中查找 li 索引

    我正在尝试通过 Javascript 中的 id 查找列表项的索引 例如 我有 5 个项目的列表 给定一个元素 我想找出它在列表中的位置 下面是我希望构建的代码 它使用 onclick 处理程序来查找正在工作的元素 然后我只需要以某种方式找
  • Sequelize targetKey 不起作用

    我正在尝试使用sequelize关联两个模型 Note 和 Resource 但是 targetKey 没有按预期工作 注意模态 module exports function sequelize DataTypes return sequ
  • 解构深层属性

    我最近开始使用 ES6解构赋值语法并开始熟悉这个概念 我想知道是否可以使用相同的语法提取嵌套属性 例如 假设我有以下代码 let cagingIt foo bar Nick Cage 我知道我能够访问摘录foo通过执行以下操作将其放入变量中
  • 使用 API 的 Ionic 3 登录身份验证 - 无法读取 null 的属性“json”

    我正在使用 API 在 Ionic 3 中进行身份验证 但在登录过程中 它显示错误 无法读取 null 的属性 json 这是我的providers gt restapi gt restapi ts import HttpClient fr
  • 客户端发送的请求语法错误 ().+Spring , RESTClient

    我正在使用 JSON 对象使用 Spring MVC 当我尝试从 RESTClient 发送 JSON 对象时 我得到 HTTP 状态 400 客户端发送的请求在语法上不正确 这是我的控制器 ObjectMapper mapper new