diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java b/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java index 3a1b06ae8..202c7333a 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/InputStreamBody.java @@ -45,6 +45,7 @@ public class InputStreamBody extends AbstractContentBody { private final InputStream in; private final String filename; + private final long contentLength; public InputStreamBody(final InputStream in, final String filename) { this(in, ContentType.DEFAULT_BINARY, filename); @@ -54,10 +55,18 @@ public class InputStreamBody extends AbstractContentBody { * @since 4.3 */ public InputStreamBody(final InputStream in, final ContentType contentType, final String filename) { + this(in, contentType, filename, -1); + } + + /** + * @since 4.6 + */ + public InputStreamBody(final InputStream in, final ContentType contentType, final String filename, final long contentLength) { super(contentType); Args.notNull(in, "Input stream"); this.in = in; this.filename = filename; + this.contentLength = contentLength >= 0 ? contentLength : -1; } /** @@ -93,7 +102,7 @@ public class InputStreamBody extends AbstractContentBody { @Override public long getContentLength() { - return -1; + return this.contentLength; } @Override