From c182943025b7a793939f13ab25c446368919cd86 Mon Sep 17 00:00:00 2001 From: Florian Cramer Date: Wed, 2 Nov 2022 00:41:28 +0100 Subject: [PATCH] Allow usage of GET with body in java11 Module --- .../java/feign/http2client/Http2Client.java | 15 +---------- .../http2client/test/Http2ClientTest.java | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/java11/src/main/java/feign/http2client/Http2Client.java b/java11/src/main/java/feign/http2client/Http2Client.java index 1065c989a..55d698214 100644 --- a/java11/src/main/java/feign/http2client/Http2Client.java +++ b/java11/src/main/java/feign/http2client/Http2Client.java @@ -190,20 +190,7 @@ private Builder newRequestBuilder(Request request, Options options) throws URISy requestBuilder.headers(asString(headers)); } - switch (request.httpMethod()) { - case GET: - return requestBuilder.GET(); - case POST: - return requestBuilder.POST(body); - case PUT: - return requestBuilder.PUT(body); - case DELETE: - return requestBuilder.DELETE(); - default: - // fall back scenario, http implementations may restrict some methods - return requestBuilder.method(request.httpMethod().toString(), body); - } - + return requestBuilder.method(request.httpMethod().toString(), body); } /** diff --git a/java11/src/test/java/feign/http2client/test/Http2ClientTest.java b/java11/src/test/java/feign/http2client/test/Http2ClientTest.java index 0e03fcb06..e1fb69950 100644 --- a/java11/src/test/java/feign/http2client/test/Http2ClientTest.java +++ b/java11/src/test/java/feign/http2client/test/Http2ClientTest.java @@ -44,6 +44,14 @@ public interface TestInterface { @RequestLine("POST /timeout") @Headers({"Accept: text/plain"}) String timeout(); + + @RequestLine("GET /anything") + @Body("some request body") + String getWithBody(); + + @RequestLine("DELETE /anything") + @Body("some request body") + String deleteWithBody(); } @Override @@ -115,6 +123,24 @@ public void timeoutTest() { api.timeout(); } + @Test + public void testGetWithRequestBody() { + final TestInterface api = + newBuilder().target(TestInterface.class, "https://nghttp2.org/httpbin/"); + String result = api.getWithBody(); + Assertions.assertThat(result) + .contains("\"data\": \"some request body\""); + } + + @Test + public void testDeleteWithRequestBody() { + final TestInterface api = + newBuilder().target(TestInterface.class, "https://nghttp2.org/httpbin/"); + String result = api.deleteWithBody(); + Assertions.assertThat(result) + .contains("\"data\": \"some request body\""); + } + @Override public Feign.Builder newBuilder() { return Feign.builder().client(new Http2Client());