From 0cb3da88ec2b38d6cbfd06adf64a22225be988aa Mon Sep 17 00:00:00 2001 From: Greg Schueler Date: Fri, 4 Apr 2014 11:40:24 -0700 Subject: [PATCH] Allow empty content in request --- src/main/java/org/rundeck/api/ApiCall.java | 2 ++ src/main/java/org/rundeck/api/ApiPathBuilder.java | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/org/rundeck/api/ApiCall.java b/src/main/java/org/rundeck/api/ApiCall.java index e285dee..07e09f9 100644 --- a/src/main/java/org/rundeck/api/ApiCall.java +++ b/src/main/java/org/rundeck/api/ApiCall.java @@ -310,6 +310,8 @@ class ApiCall { }else if(apiPath.getXmlDocument()!=null) { httpPost.setHeader("Content-Type", "application/xml"); httpPost.setEntity(new EntityTemplate(new DocumentContentProducer(apiPath.getXmlDocument()))); + }else if(apiPath.isEmptyContent()){ + //empty content }else { throw new IllegalArgumentException("No Form or Multipart entity for POST content-body"); } diff --git a/src/main/java/org/rundeck/api/ApiPathBuilder.java b/src/main/java/org/rundeck/api/ApiPathBuilder.java index 18a6194..05250ec 100644 --- a/src/main/java/org/rundeck/api/ApiPathBuilder.java +++ b/src/main/java/org/rundeck/api/ApiPathBuilder.java @@ -50,6 +50,7 @@ class ApiPathBuilder { private InputStream contentStream; private File contentFile; private String contentType; + private boolean emptyContent = false; /** Marker for using the right separator between parameters ("?" or "&") */ private boolean firstParamDone = false; @@ -308,6 +309,15 @@ class ApiPathBuilder { } return this; } + /** + * When POSTing a request, send an empty request. + * + * @return this, for method chaining + */ + public ApiPathBuilder emptyContent() { + this.emptyContent=true; + return this; + } /** * When POSTing a request, add the given XMl Document as the content of the request. * @@ -403,6 +413,9 @@ class ApiPathBuilder { return contentFile; } + public boolean isEmptyContent() { + return emptyContent; + } /** * BuildsParameters can add URL or POST parameters to an {@link ApiPathBuilder} *