gpt4 book ai didi

spring - 尝试测试 HTTP POST 处理时出现 HttpMediaTypeNotSupportedException

转载 作者:可可西里 更新时间:2023-11-01 16:26:38 25 4
gpt4 key购买 nike

我正在尝试在 spring 框架中测试 POST 方法,但我一直收到错误。

我第一次尝试这个测试:

this.mockMvc.perform(post("/rest/tests").
param("id", "10").
param("width","25")
)
.andDo(MockMvcResultHandlers.print())
.andExpect(status().isOk());

出现以下错误:

org.springframework.http.converter.HttpMessageNotReadableException

然后我尝试如下修改测试:

this.mockMvc.perform(post("/rest/tests/").
content("{\"id\":10,\"width\":1000}"))
.andDo(MockMvcResultHandlers.print())
.andExpect(status().isOk());

但是出现如下错误:
org.springframework.web.HttpMediaTypeNotSupportedException

我的 Controller 是:

@Controller
@RequestMapping("/rest/tests")
public class TestController {

@Autowired
private ITestService testService;

@RequestMapping(value="", method=RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public void add(@RequestBody Test test)
{
testService.save(test);
}
}

其中 Test 类有两个字段成员:idwidth。简而言之,我无法为 Controller 设置参数。

如何正确设置参数?

最佳答案

您应该向发布请求添加内容类型 MediaType.APPLICATION_JSON,例如

this.mockMvc.perform(post("/rest/tests/")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"id\":10,\"width\":1000}"))
.andDo(MockMvcResultHandlers.print())
.andExpect(status().isOk());

关于spring - 尝试测试 HTTP POST 处理时出现 HttpMediaTypeNotSupportedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31609496/

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