You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by mi...@apache.org on 2021/11/14 08:51:43 UTC
[httpcomponents-client] branch master updated: HTTPCLIENT-2065: Simplify additon of content type parameters in MultipartEntityBuilder
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
The following commit(s) were added to refs/heads/master by this push:
new d2c59fd HTTPCLIENT-2065: Simplify additon of content type parameters in MultipartEntityBuilder
d2c59fd is described below
commit d2c59fd5e40409248b4c9eb876d67249ac881a1d
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Mon Nov 1 09:41:58 2021 +0100
HTTPCLIENT-2065: Simplify additon of content type parameters in MultipartEntityBuilder
This closes #320
---
.../client5/http/entity/mime/MultipartEntityBuilder.java | 11 +++++++++++
.../http/entity/mime/TestMultipartEntityBuilder.java | 14 ++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java
index 543bbc7..aae9266 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/entity/mime/MultipartEntityBuilder.java
@@ -112,6 +112,17 @@ public class MultipartEntityBuilder {
this.contentType = contentType;
return this;
}
+ /**
+ * Add parameter to the current {@link ContentType}.
+ *
+ * @param parameter The name-value pair parameter to add to the {@link ContentType}.
+ * @return the {@link MultipartEntityBuilder} instance.
+ * @since 5.2
+ */
+ public MultipartEntityBuilder addParameter(final BasicNameValuePair parameter) {
+ this.contentType = contentType.withParameters(parameter);
+ return this;
+ }
public MultipartEntityBuilder setCharset(final Charset charset) {
this.charset = charset;
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/entity/mime/TestMultipartEntityBuilder.java b/httpclient5/src/test/java/org/apache/hc/client5/http/entity/mime/TestMultipartEntityBuilder.java
index 3bbd7b7..9981abb 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/entity/mime/TestMultipartEntityBuilder.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/entity/mime/TestMultipartEntityBuilder.java
@@ -121,6 +121,20 @@ public class TestMultipartEntityBuilder {
}
@Test
+ public void testMultipartCustomContentTypeUsingAddParameter() {
+ final MultipartEntityBuilder eb = MultipartEntityBuilder.create();
+ eb.setMimeSubtype("related");
+ eb.addParameter(new BasicNameValuePair("boundary", "yada-yada"));
+ eb.addParameter(new BasicNameValuePair("charset", "ascii"));
+ eb.addParameter(new BasicNameValuePair("my", "stuff"));
+ eb.buildEntity();
+ final MultipartFormEntity entity = eb.buildEntity();
+ Assert.assertNotNull(entity);
+ Assert.assertEquals("multipart/related; boundary=yada-yada; charset=US-ASCII; my=stuff",
+ entity.getContentType());
+ }
+
+ @Test
public void testMultipartWriteTo() throws Exception {
final String helloWorld = "hello world";
final List<NameValuePair> parameters = new ArrayList<>();