From def3f5b3fb651affa80da4b6592701335ee12cba Mon Sep 17 00:00:00 2001 From: xhh Date: Fri, 11 Sep 2015 11:48:09 +0800 Subject: [PATCH] Java-jersey2: record status code and response headers of last request --- .../Java/libraries/jersey2/ApiClient.mustache | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache index fb5f6b0d1075..5033c1986f83 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache @@ -53,6 +53,9 @@ public class ApiClient { private Map authentications; + private int statusCode; + private Map> responseHeaders; + private DateFormat dateFormat; public ApiClient() { @@ -84,6 +87,20 @@ public class ApiClient { return this; } + /** + * Gets the status code of the previous request + */ + public int getStatusCode() { + return statusCode; + } + + /** + * Gets the response headers of the previous request + */ + public Map> getResponseHeaders() { + return responseHeaders; + } + /** * Get authentications (key: authentication name, value: authentication). */ @@ -484,6 +501,9 @@ public class ApiClient { throw new ApiException(500, "unknown method type " + method); } + statusCode = response.getStatusInfo().getStatusCode(); + responseHeaders = buildResponseHeaders(response); + if (response.getStatus() == Status.NO_CONTENT.getStatusCode()) { return null; } else if (response.getStatusInfo().getFamily().equals(Status.Family.SUCCESSFUL)) { @@ -502,23 +522,27 @@ public class ApiClient { // e.printStackTrace(); } } - Map> responseHeaders = new HashMap>(); - for (String key: response.getHeaders().keySet()) { - List values = response.getHeaders().get(key); - List headers = new ArrayList(); - for (Object o : values) { - headers.add(String.valueOf(o)); - } - responseHeaders.put(key, headers); - } throw new ApiException( response.getStatus(), message, - responseHeaders, + buildResponseHeaders(response), respBody); } } + private Map> buildResponseHeaders(Response response) { + Map> responseHeaders = new HashMap>(); + for (Entry> entry: response.getHeaders().entrySet()) { + List values = entry.getValue(); + List headers = new ArrayList(); + for (Object o : values) { + headers.add(String.valueOf(o)); + } + responseHeaders.put(entry.getKey(), headers); + } + return responseHeaders; + } + /** * Update query and header parameters based on authentication settings. *