gpt4 book ai didi

java - Spring MVC Tomcat - 415 服务器拒绝请求,因为请求实体的格式不受所请求方法的请求资源支持

转载 作者:行者123 更新时间:2023-11-28 23:19:24 32 4
gpt4 key购买 nike

我正在尝试做的事情:我正在编写 Java Spring MVC REST API。我正在尝试发送 JSON,并根据该数据取回图像。

我的问题是什么
当我发送下面给出的 JSON 作为内容类型为 application/json 的 POST 正文的一部分时,我收到下面列出的 415 错误

我尝试过的

  • @RestController 切换为 @Controller

  • @RequestBody 切换为 @ModelAttribute

  • 我正在使用 PostMan 发送数据。我将 header Content-Type 包含到 application/json 中,因此它应该将其作为 JSON 数据发送。 Fiddler 似乎证实了这一点。

错误代码:
服务器拒绝了此请求,因为请求实体的格式不受所请求方法所请求资源的支持。


Controller 代码:

@RestController
public class Controller {

@RequestMapping(value = "/GrabImage", method = RequestMethod.POST, consumes = "application/json", produces = MediaType.IMAGE_PNG_VALUE)
public byte[] GrabImage(@RequestBody Count count){
//code will go here
}
}

JSON 数据:

{
"wordCounts": [
{
"word": "Sierra",
"count": 50
},
{
"word": "Love",
"count": 25
},
{
"word": "Dog",
"count": 10
}
]
}

计数类:

public class Count
{
private WordCounts[] wordCounts;

public WordCounts[] getWordCounts ()
{
return wordCounts;
}

public void setWordCounts (WordCounts[] wordCounts)
{
this.wordCounts = wordCounts;
}

@Override
public String toString()
{
return "ClassPojo [wordCounts = "+wordCounts+"]";
}
}

WordCount 类:

public class WordCounts
{
private int count;

private String word;

public int getCount ()
{
return count;
}

public void setCount (int count)
{
this.count = count;
}

public String getWord ()
{
return word;
}

public void setWord (String word)
{
this.word = word;
}

@Override
public String toString()
{
return "ClassPojo [count = "+count+", word = "+word+"]";
}
}

最佳答案

感谢 Rossi Robinson 帮助我找出问题所在。

事实证明,Spring MVC 需要 Jackson 库来反序列化和序列化对象。只会添加依赖项,然后我认为 Spring 会发现它们的存在并利用它们。

所以对于从 future 来到这里的人:如果您还没有这样做,请尝试添加 Jackson 库。

关于java - Spring MVC Tomcat - 415 服务器拒绝请求,因为请求实体的格式不受所请求方法的请求资源支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45624755/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com