diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache index f3bc56b7a1c..1a07e1cbdca 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/apache-httpclient/ApiClient.mustache @@ -1059,6 +1059,9 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { } else { throw new ApiException("method " + method + " does not support a request body"); } + } else { + // for empty body + builder.setEntity(serialize(null, null, contentTypeObj)); } try (CloseableHttpResponse response = httpClient.execute(builder.build(), context)) { diff --git a/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java index 8a028457e17..49ad3821b71 100644 --- a/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/echo_api/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java @@ -932,6 +932,9 @@ public class ApiClient extends JavaTimeFormatter { } else { throw new ApiException("method " + method + " does not support a request body"); } + } else { + // for empty body + builder.setEntity(serialize(null, null, contentTypeObj)); } try (CloseableHttpResponse response = httpClient.execute(builder.build(), context)) { diff --git a/samples/client/echo_api/java/apache-httpclient/src/test/java/org/openapitools/client/CustomTest.java b/samples/client/echo_api/java/apache-httpclient/src/test/java/org/openapitools/client/CustomTest.java index 3d0eee0cf5c..ce936f30417 100644 --- a/samples/client/echo_api/java/apache-httpclient/src/test/java/org/openapitools/client/CustomTest.java +++ b/samples/client/echo_api/java/apache-httpclient/src/test/java/org/openapitools/client/CustomTest.java @@ -15,10 +15,8 @@ package org.openapitools.client; import org.junit.Assert; import org.openapitools.client.ApiException; -import org.openapitools.client.api.QueryApi; -import org.openapitools.client.model.Category; -import org.openapitools.client.model.Pet; -import org.openapitools.client.model.TestQueryStyleFormExplodeTrueArrayStringQueryObjectParameter; +import org.openapitools.client.api.*; +import org.openapitools.client.model.*; import org.junit.Test; import org.junit.Ignore; @@ -31,7 +29,29 @@ import java.util.*; public class CustomTest { private final QueryApi api = new QueryApi(); + private final BodyApi bodyApi = new BodyApi(); + /** + * Test body parameter(s) + *

+ * Test body parameter(s) + * + * @throws ApiException if the Api call fails + */ + @Test + public void testEchoBodyPet() throws ApiException { + Pet queryObject = new Pet().id(12345L).name("Hello World"). + photoUrls(Arrays.asList(new String[]{"http://a.com", "http://b.com"})).category(new Category().id(987L).name("new category")); + + Pet p = bodyApi.testEchoBodyPet(queryObject); + Assert.assertNotNull(p); + Assert.assertEquals("Hello World", p.getName()); + Assert.assertEquals(Long.valueOf(12345L), p.getId()); + + // response is empty body + Pet p2 = bodyApi.testEchoBodyPet(null); + Assert.assertNull(p2); + } /** * Test query parameter(s) diff --git a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java index 015cc46bef0..662190f7625 100644 --- a/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/apache-httpclient/src/main/java/org/openapitools/client/ApiClient.java @@ -1075,6 +1075,9 @@ public class ApiClient extends JavaTimeFormatter { } else { throw new ApiException("method " + method + " does not support a request body"); } + } else { + // for empty body + builder.setEntity(serialize(null, null, contentTypeObj)); } try (CloseableHttpResponse response = httpClient.execute(builder.build(), context)) {