diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RestClientRibbonCommand.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RestClientRibbonCommand.java index b5423ce7..d8fb01ed 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RestClientRibbonCommand.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RestClientRibbonCommand.java @@ -55,9 +55,17 @@ public class RestClientRibbonCommand extends AbstractRibbonCommand result = new TestRestTemplate().exchange( + "http://localhost:" + this.port + "/simple/deletewithbody", HttpMethod.DELETE, + new HttpEntity<>("deleterequestbody"), String.class); + assertEquals(HttpStatus.OK, result.getStatusCode()); + if (supportsDeleteWithBody()) { + assertEquals("Deleted deleterequestbody", result.getBody()); + } else { + assertEquals("Deleted null", result.getBody()); + } + } + @Test public void ribbonRouteWithNonExistentUri() { String uri = "/simple/nonExistent"; @@ -272,8 +300,6 @@ public abstract class ZuulProxyTestBase { assertEquals("Posted [(bar)] and Content-Length was: 13!", result.getBody()); } - protected abstract boolean supportsPatch(); - public static abstract class AbstractZuulProxyApplication extends DelegatingWebMvcConfiguration { @@ -297,7 +323,12 @@ public abstract class ZuulProxyTestBase { public String postWithFormParam(HttpServletRequest request, @RequestBody MultiValueMap body) { return "Posted " + body.get("foo") + " and Content-Length was: " + request.getContentLength() + "!"; - } + } + + @RequestMapping(value = "/deletewithbody", method = RequestMethod.DELETE) + public String deleteWithBody(@RequestBody(required = false) String body) { + return "Deleted " + body; + } @RequestMapping(value = "/local/{id}", method = RequestMethod.DELETE) public String delete(@PathVariable String id) {