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

不支持的媒体类型415@刚体不工作,但@刚体正在工作

万俟渝
2023-03-14

我有一个模型类和一个控制器。我在post man的正文中发布json类型的数据。但每次我都会收到一个不受支持的媒体类型415错误。这是我的模型课:

public class Model1 {
    private String name;
    private String password;
    public Model1() {
        System.out.println("In the Model");
    }
    public String getName() {
        return name;
    } 

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "Model1 [name=" + name + ", password=" + password + "]";
    }
}

我的控制器是:

@Controller
@ResponseBody
public class EcomController { 
    @RequestMapping(value="/getLogin", method=RequestMethod.POST, 
    consumes=MediaType.APPLICATION_JSON_VALUE)
    public String getLoginStatus(@RequestBody Model1 name){
        return "successfully called Post"+name.toString();
    }
}

我已经用HttpServletRequest代替@RequestBody,它起到了作用。但为什么在我使用@RequestBody时它不工作呢?

这是邮递员的快照。这是邮递员请求的图片

{
    "name": "anshsh",
    "password": "vbvfjh"
}

这是请求中使用的标题的屏幕截图

共有3个答案

诸葛令
2023-03-14

你不需要在那里写上回应

还有一个例子是

@RestController 
public class EcomController { 
    @PostMapping("/getLogin")
    public String getLoginStatus(@RequestBody Model1 name){
        return "successfully called Post"+name.toString();
    } 
}

如果您不断出现错误,我认为问题在于servlet没有发现您的控制器已注册。。当你试图编译时,你能提供更多的详细信息,比如日志吗?

魏宏邈
2023-03-14

有两个方面需要检查此类问题。

  1. 在请求中添加Content-type作为application/json(您已经这样做了)
  2. 确保类路径中有jackson(核心和数据绑定)库

重点2是确保应用程序能够在JSON和Java类型之间转换。

为了进一步缩小问题范围,请检查日志并尝试获取API,看看Java对象是否已转换为JSON字符串。

有关完整的工作代码,请参阅此链接。

慕光霁
2023-03-14

我在配置文件中发现了错误。添加

说明:
我的程序运行得很好,但问题是如何将字符串(Json)映射到java对象。因此,默认映射类中存在一些问题。虽然jackson在课堂路径上,但它不起作用

 类似资料:
  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道

  • 我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。

  • 问题内容: 我正在尝试使用jQuery 1.6(Jackson 2.1.1 和Spring 3.2.0 )通过JSON通过该方法向数据库中插入和/或更新数据。 JS代码如下。 通过URL映射的Spring控制器内部的方法如下。 服务器按照问题的含义进行响应, 415不支持的媒体类型 标头信息如下所示。 整个文件如下。 当我删除一个方法参数并仅用于接受请求参数时,它可以工作。 问题答案: 浏览器发送

  • 问题内容: 我正在使用Spring 3.2,并尝试使用ajax发布请求来提交json对象数组。如果相关,我转义了所有特殊字符。 我的HTTP状态为415。 我的控制器是: jQuery是: 我发布的数组中的对象之一的示例是以下json: 错误是: 为什么会发生此错误-有人知道吗? 问题答案: 您可以尝试使用。它没有任何问题

  • 我试图使用BlueJeans API来创建一个客户端应用程序,https://github.com/bluejeans/api-rest-meetings/blob/master/libs/python/docs/ApplicationApi.md#create_client_application.我已经获得了一个客户端ID和秘密以及用户ID,并将它们保存在我的Django设置中。我还编写了一个