如何在Spring Boot Web Client中发送请求正文?

时间:2018-11-09 12:03:17

标签: spring-boot kotlin webclient spring-webflux

在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格式。 请让我知道我在哪里做错了。

2 个答案:

答案 0 :(得分:3)

您没有设置"Content-Type"请求标头,因此需要将.contentType(MediaType.APPLICATION_JSON)附加到请求构建部分。

答案 1 :(得分:1)

以上答案是正确的:在application/json标头中添加Content-Type可解决此问题。不过,在这个答案中,我想提一下BodyInserters.fromObject(body)已过时。从Spring Framework 5.2开始,建议使用BodyInserters.fromValue(body)

相关问题