Browse Source

Merge pull request #88 from michael-oliver-pearson/feature/disable-exceptions

Add option to disable exceptions when using the Response type
pull/102/head
Adrian Cole 11 years ago
parent
commit
022d3a24ba
  1. 17
      core/src/main/java/feign/MethodHandler.java
  2. 12
      core/src/test/java/feign/FeignTest.java

17
core/src/main/java/feign/MethodHandler.java

@ -136,15 +136,16 @@ interface MethodHandler { @@ -136,15 +136,16 @@ interface MethodHandler {
if (logLevel.get() != Logger.Level.NONE) {
response = logger.logAndRebufferResponse(metadata.configKey(), logLevel.get(), response, elapsedTime);
}
if (Response.class == metadata.returnType()) {
if (response.body() == null) {
return response;
}
// Ensure the response body is disconnected
byte[] bodyData = Util.toByteArray(response.body().asInputStream());
return Response.create(response.status(), response.reason(), response.headers(), bodyData);
}
if (response.status() >= 200 && response.status() < 300) {
if (Response.class == metadata.returnType()) {
if (response.body() == null) {
return response;
}
// Ensure the response body is disconnected
byte[] bodyData = Util.toByteArray(response.body().asInputStream());
return Response.create(response.status(), response.reason(), response.headers(), bodyData);
} else if (void.class == metadata.returnType()) {
if (void.class == metadata.returnType()) {
return null;
} else {
return decode(response);

12
core/src/test/java/feign/FeignTest.java

@ -536,4 +536,16 @@ public class FeignTest { @@ -536,4 +536,16 @@ public class FeignTest {
server.shutdown();
}
}
@Test
public void responseTypeGetsReturnedDirectlyEvenWithErrorResponseCode() throws Exception {
final MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse().setResponseCode(404));
server.play();
TestInterface testInterface = Feign.builder().options(new Request.Options(1000, 1000))
.target(TestInterface.class, "http://localhost:" + server.getPort());
Response response = testInterface.response();
assertEquals(response.status(), 404);
}
}

Loading…
Cancel
Save