diff --git a/unirest-bdd-tests/src/test/java/BehaviorTests/MultiPartFormPostingTest.java b/unirest-bdd-tests/src/test/java/BehaviorTests/MultiPartFormPostingTest.java index 3fb0539f..88cfced2 100644 --- a/unirest-bdd-tests/src/test/java/BehaviorTests/MultiPartFormPostingTest.java +++ b/unirest-bdd-tests/src/test/java/BehaviorTests/MultiPartFormPostingTest.java @@ -492,4 +492,23 @@ void settingTheBoundary() { }); } + + @Test + void overridingForcingMultiTypeOverridesHeader(){ + Unirest.config() + .setDefaultHeader("Accept", "application/json") + .setDefaultHeader("Content-Type", "application/json") + .setDefaultHeader("Authorization", "Bearer xxx-abc-123"); + + Unirest.post(MockServer.POST) + .basicAuth("username", "password") + .multiPartContent() + .field("username", "xxx") + .field("token", "abc") + .field("grant_type", "password") + .asObject(RequestCapture.class) + .getBody() + .assertHeaderSize("Content-Type", 1) + .assertMultiPartContentType(); + } } diff --git a/unirest/src/main/java/kong/unirest/core/Headers.java b/unirest/src/main/java/kong/unirest/core/Headers.java index 8287f810..f9c48df2 100644 --- a/unirest/src/main/java/kong/unirest/core/Headers.java +++ b/unirest/src/main/java/kong/unirest/core/Headers.java @@ -73,7 +73,11 @@ public void replace(String name, String value) { add(name, value); } - private void remove(String name) { + /** + * Remove a header by name + * @param name the name of the header + */ + public void remove(String name) { headers.removeIf(h -> isName(h, name)); } diff --git a/unirest/src/main/java/kong/unirest/core/HttpRequestMultiPart.java b/unirest/src/main/java/kong/unirest/core/HttpRequestMultiPart.java index d8387e7e..5df74ba8 100644 --- a/unirest/src/main/java/kong/unirest/core/HttpRequestMultiPart.java +++ b/unirest/src/main/java/kong/unirest/core/HttpRequestMultiPart.java @@ -231,6 +231,7 @@ public ProgressMonitor getMonitor() { MultipartBody forceMultiPart(boolean value) { forceMulti = value; + headers.remove("Content-Type"); return this; } }