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<>();