在Spring Boot Web客户端中发送请求正文时,我遇到了一些问题。尝试发送如下内容的邮件:
val body = "{\n" +
"\"email\":\"test@mail.com\",\n" +
"\"id\":1\n" +
"}"
val response = webClient.post()
.uri( "test_uri" )
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromObject(body))
.exchange()
.block()
它不起作用。 请求正文应为JSON格式。 请让我知道我在哪里做错了。
答案 0 :(得分:3)
您没有设置"Content-Type"
请求标头,因此需要将.contentType(MediaType.APPLICATION_JSON)
附加到请求构建部分。
答案 1 :(得分:1)
以上答案是正确的:在application/json
标头中添加Content-Type
可解决此问题。不过,在这个答案中,我想提一下BodyInserters.fromObject(body)
已过时。从Spring Framework 5.2开始,建议使用BodyInserters.fromValue(body)
。