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 a5319e271ee246c92419d1d5555f7bef3a771082..875689157705da32ae22bfc3f753fb88953c56f4 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 @@ -830,7 +830,15 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { String mimeType = getResponseMimeType(response); if (mimeType == null || isJsonMime(mimeType)) { // Assume json if no mime type - return objectMapper.readValue(entity.getContent(), valueType); + // convert input stream to string + java.util.Scanner s = new java.util.Scanner(entity.getContent()).useDelimiter("\\A"); + String content = (String) (s.hasNext() ? s.next() : ""); + + if ("".equals(content)) { // returns null for empty body + return null; + } + + return objectMapper.readValue(content, valueType); } else if ("text/plain".equalsIgnoreCase(mimeType)) { // convert input stream to string java.util.Scanner s = new java.util.Scanner(entity.getContent()).useDelimiter("\\A"); @@ -1069,7 +1077,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { } } else { // for empty body - builder.setEntity(serialize(null, null, contentTypeObj)); + builder.setEntity(new StringEntity("", 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 e04daaa449d19115f1026b3b2ddc35c64e27a4ae..58de7cfee181ce6a4a08428ce4e850fc4d14716a 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 @@ -703,7 +703,15 @@ public class ApiClient extends JavaTimeFormatter { String mimeType = getResponseMimeType(response); if (mimeType == null || isJsonMime(mimeType)) { // Assume json if no mime type - return objectMapper.readValue(entity.getContent(), valueType); + // convert input stream to string + java.util.Scanner s = new java.util.Scanner(entity.getContent()).useDelimiter("\\A"); + String content = (String) (s.hasNext() ? s.next() : ""); + + if ("".equals(content)) { // returns null for empty body + return null; + } + + return objectMapper.readValue(content, valueType); } else if ("text/plain".equalsIgnoreCase(mimeType)) { // convert input stream to string java.util.Scanner s = new java.util.Scanner(entity.getContent()).useDelimiter("\\A"); @@ -942,7 +950,7 @@ public class ApiClient extends JavaTimeFormatter { } } else { // for empty body - builder.setEntity(serialize(null, null, contentTypeObj)); + builder.setEntity(new StringEntity("", contentTypeObj)); } try (CloseableHttpResponse response = httpClient.execute(builder.build(), context)) { 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 10a649ae2e4ea13fe5ecf883581bb81b701a783b..70b456cadfd5062cc37e9022651ef0cc925bbce7 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 @@ -846,7 +846,15 @@ public class ApiClient extends JavaTimeFormatter { String mimeType = getResponseMimeType(response); if (mimeType == null || isJsonMime(mimeType)) { // Assume json if no mime type - return objectMapper.readValue(entity.getContent(), valueType); + // convert input stream to string + java.util.Scanner s = new java.util.Scanner(entity.getContent()).useDelimiter("\\A"); + String content = (String) (s.hasNext() ? s.next() : ""); + + if ("".equals(content)) { // returns null for empty body + return null; + } + + return objectMapper.readValue(content, valueType); } else if ("text/plain".equalsIgnoreCase(mimeType)) { // convert input stream to string java.util.Scanner s = new java.util.Scanner(entity.getContent()).useDelimiter("\\A"); @@ -1085,7 +1093,7 @@ public class ApiClient extends JavaTimeFormatter { } } else { // for empty body - builder.setEntity(serialize(null, null, contentTypeObj)); + builder.setEntity(new StringEntity("", contentTypeObj)); } try (CloseableHttpResponse response = httpClient.execute(builder.build(), context)) {