summaryrefslogtreecommitdiffstats
path: root/http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java')
-rw-r--r--http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java b/http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java
index b41b16c25be..16a419bf324 100644
--- a/http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java
+++ b/http-client/src/main/java/ai/vespa/hosted/client/HttpClient.java
@@ -78,7 +78,13 @@ public interface HttpClient extends Closeable {
RequestBuilder body(byte[] json);
/** Sets the request body. */
- RequestBuilder body(HttpEntity entity);
+ default RequestBuilder body(HttpEntity entity) {
+ if (entity.isRepeatable()) return body(() -> entity);
+ throw new IllegalArgumentException("entitiy must be repeatable, or a supplier must be used");
+ }
+
+ /** Sets the request body. */
+ RequestBuilder body(Supplier<HttpEntity> entity);
/** Sets query parameters without a value, like {@code ?debug&recursive}. */
default RequestBuilder emptyParameters(String... keys) {