当前位置: 首页 > 知识库问答 >
问题:

Spring rest服务:PUT方法返回HTTP 400

王高超
2023-03-14

我有以下Rest服务API来更新“朋友”数据集:

@PutMapping("/{id}")
    public ResponseEntity<Friends> updateFriendship(@PathVariable("id") Long id,
                                                    @Valid @RequestBody Friends friendsDto)
            throws ResourceNotFoundException, InvalidDataException {
        Friends updatedLecture = businessLogicFriends.update(id, friendsDto);
        return ResponseEntity.ok(updatedLecture);
    }

当我尝试将更新的对象“朋友”通过使用Spring restTemboard这样:

public void updateFriends(Friends friends) {
        restTemplate.put(this.friendsServiceEndpoint+ "/" +friends.getId_friend().toString(), friends);
    }

我得到一个HTTP 400 BadRequest错误。

我不知道为什么会这样。你有什么建议吗?

共有1个答案

刁文光
2023-03-14

当使用rest模板put方法时,请确保传递的是有效的friends对象,这意味着friends类中字段的值是有效的,因为在请求正文上有@valid注释

 类似资料:
  • 我有一个rest服务,实现如下- 我得到了所有的头和响应状态正确,但我没有得到json响应。这里怎么了?

  • 我的浏览器控制台上有一个错误:“放置http://localhost:8000/post/2 500(内部服务器错误)” 我使用资源控制器和我的路由-路由e::资源('post','PostController'); 此处为更新帖子的资源控制器代码: 这里我的视图代码: Ajax代码: 顺便说一下,我在文件头上使用了元令牌{{csrf_token()}}。但是我在本地主机上发现了500个内部服务器

  • 我使用泽西API进行我的REST服务。我的问题是:是否有更优雅的方式以JSON形式返回异常?最好是自己创建一个json对象并将其直接附加到响应中? 这是服务中一种方法的简化示例。如您所见,我使用HashMap只是因为该方法可能引发异常,在这种情况下,我需要返回有关它的信息。

  • 我正在使用spring mvc设置一个rest api,并且大多数配置都是通过spring boot项目自动设置的。在前端,我使用angularjs及其$HTTP模块向服务器发出获取资源的ajax请求。资源URL在my controller类中定义,但仅匹配GET URL。我试过PUT和POST,但它们分别返回405方法不允许和403禁止. 我的控制器看起来像这样 而对与url不匹配的服务器的请求

  • 我正在创建一个Android应用程序,它使用BLE与MCU进行通信,目前我可以使用我的应用程序与MCU建立连接,但当我试图发现并获取设备的服务时,我返回了一个空数组,并且不确定原因。 输出: 09-26 16:33:09.648 10917-10931/bamboomobile.medheadI/TAG:连接到GATT服务器。 09-26 16:33:09.648 10917-10931/bamb

  • 基本上,我想做一个POST请求与以下主体: 为什么会这样?