From e58e132df9580c0e9c1270c746ff54b62e4f6790 Mon Sep 17 00:00:00 2001 From: Ryan Bergman Date: Mon, 30 Mar 2020 15:46:29 -0500 Subject: [PATCH] enable mapping the error into a string --- unirest/src/main/java/kong/unirest/BaseResponse.java | 3 +++ .../src/test/java/BehaviorTests/ErrorParsingTest.java | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/unirest/src/main/java/kong/unirest/BaseResponse.java b/unirest/src/main/java/kong/unirest/BaseResponse.java index 3d5232bb3..9c08b5a4e 100644 --- a/unirest/src/main/java/kong/unirest/BaseResponse.java +++ b/unirest/src/main/java/kong/unirest/BaseResponse.java @@ -118,6 +118,9 @@ public HttpResponse ifFailure(Consumer> consumer) { public E mapError(Class errorClass) { if (!isSuccess()) { String errorBody = getErrorBody(); + if(String.class.equals(errorClass)){ + return (E) errorBody; + } try { return config.getObjectMapper().readValue(errorBody, errorClass); } catch (RuntimeException e) { diff --git a/unirest/src/test/java/BehaviorTests/ErrorParsingTest.java b/unirest/src/test/java/BehaviorTests/ErrorParsingTest.java index 773539767..e83e3e3e4 100644 --- a/unirest/src/test/java/BehaviorTests/ErrorParsingTest.java +++ b/unirest/src/test/java/BehaviorTests/ErrorParsingTest.java @@ -49,6 +49,17 @@ public void parsingAnAlternativeErrorObject() { assertErrorThing(e); } + @Test + public void mapTheErrorToAString() { + MockServer.setJsonAsResponse(new ErrorThing("boom!")); + + String e = Unirest.get(MockServer.ERROR_RESPONSE) + .asObject(RequestCapture.class) + .mapError(String.class); + + assertEquals("{\"message\":\"boom!\"}", e); + } + @Test public void parsingAnAlternativeErrorObject_StringBody() { MockServer.setJsonAsResponse(new ErrorThing("boom!"));