diff --git a/vertx-web-client/src/main/java/io/vertx/ext/web/client/impl/HttpContext.java b/vertx-web-client/src/main/java/io/vertx/ext/web/client/impl/HttpContext.java index b26b0cca17..a747c7076c 100644 --- a/vertx-web-client/src/main/java/io/vertx/ext/web/client/impl/HttpContext.java +++ b/vertx-web-client/src/main/java/io/vertx/ext/web/client/impl/HttpContext.java @@ -430,15 +430,15 @@ private void handleSendRequest() { if (request.timeout > 0) { req.setTimeout(request.timeout); } - if (body != null) { - if (contentType != null) { - String prev = req.headers().get(HttpHeaders.CONTENT_TYPE); - if (prev == null) { - req.putHeader(HttpHeaders.CONTENT_TYPE, contentType); - } else { - contentType = prev; - } + if (contentType != null) { + String prev = req.headers().get(HttpHeaders.CONTENT_TYPE); + if (prev == null) { + req.putHeader(HttpHeaders.CONTENT_TYPE, contentType); + } else { + contentType = prev; } + } + if (body != null || "application/json".equals(contentType)) { if (body instanceof MultiMap) { MultipartForm parts = MultipartForm.create(); MultiMap attributes = (MultiMap) body; diff --git a/vertx-web-client/src/test/java/io/vertx/ext/web/client/WebClientTest.java b/vertx-web-client/src/test/java/io/vertx/ext/web/client/WebClientTest.java index 5251f8e657..fe0d033bd2 100644 --- a/vertx-web-client/src/test/java/io/vertx/ext/web/client/WebClientTest.java +++ b/vertx-web-client/src/test/java/io/vertx/ext/web/client/WebClientTest.java @@ -305,6 +305,14 @@ public void testSendBufferBody() throws Exception { testSendBody(body, (contentType, buff) -> assertEquals(body, buff)); } + @Test + public void testSendJsonNullBody() throws Exception { + testSendBody(null, (contentType, buff) -> { + assertEquals("application/json", contentType); +// assertEquals(body, buff.toJsonObject()); + }); + } + private void testSendBody(Object body, BiConsumer checker) throws Exception { waitFor(2); server.requestHandler(req -> req.bodyHandler(buff -> {