diff --git a/unirest/src/main/java/kong/unirest/HttpRequestBody.java b/unirest/src/main/java/kong/unirest/HttpRequestBody.java index 5d5b50fda..0f2a2ab67 100644 --- a/unirest/src/main/java/kong/unirest/HttpRequestBody.java +++ b/unirest/src/main/java/kong/unirest/HttpRequestBody.java @@ -130,6 +130,12 @@ public Charset getCharset() { return charSet; } + @Override + public HttpRequestWithBody contentType(String type) { + headers.add("Content-Type", type); + return this; + } + @Override public Optional getBody() { return Optional.empty(); diff --git a/unirest/src/main/java/kong/unirest/HttpRequestUniBody.java b/unirest/src/main/java/kong/unirest/HttpRequestUniBody.java index 545100e1b..9db9688f4 100644 --- a/unirest/src/main/java/kong/unirest/HttpRequestUniBody.java +++ b/unirest/src/main/java/kong/unirest/HttpRequestUniBody.java @@ -80,6 +80,12 @@ public RequestBodyEntity charset(Charset charset) { return this; } + @Override + public RequestBodyEntity contentType(String type) { + headers.add("Content-Type", type); + return this; + } + @Override public Optional getBody() { return Optional.of(this); diff --git a/unirest/src/main/java/kong/unirest/HttpRequestWithBody.java b/unirest/src/main/java/kong/unirest/HttpRequestWithBody.java index a06b07432..ab992bd1e 100644 --- a/unirest/src/main/java/kong/unirest/HttpRequestWithBody.java +++ b/unirest/src/main/java/kong/unirest/HttpRequestWithBody.java @@ -175,4 +175,10 @@ default HttpRequestWithBody noCharset() { * @return the Charset */ Charset getCharset(); + + /** + * @param type The content mime type + * @return this request builder + */ + HttpRequestWithBody contentType(String type); } diff --git a/unirest/src/main/java/kong/unirest/RequestBodyEntity.java b/unirest/src/main/java/kong/unirest/RequestBodyEntity.java index c71cbf5e3..6bb7fc627 100644 --- a/unirest/src/main/java/kong/unirest/RequestBodyEntity.java +++ b/unirest/src/main/java/kong/unirest/RequestBodyEntity.java @@ -85,4 +85,10 @@ public interface RequestBodyEntity extends HttpRequest, Body default RequestBodyEntity noCharset() { return charset(null); } + + /** + * @param type The content mime type + * @return this request builder + */ + RequestBodyEntity contentType(String type); } diff --git a/unirest/src/test/java/BehaviorTests/UniBodyPostingTest.java b/unirest/src/test/java/BehaviorTests/UniBodyPostingTest.java index 7f6ca9a31..aa17b1f59 100644 --- a/unirest/src/test/java/BehaviorTests/UniBodyPostingTest.java +++ b/unirest/src/test/java/BehaviorTests/UniBodyPostingTest.java @@ -37,6 +37,26 @@ class UniBodyPostingTest extends BddTest { + @Test + void hasShortCutForContentHeader() { + Unirest.post(MockServer.POST) + .contentType("plain/text") + .body("Hi") + .asObject(RequestCapture.class) + .getBody() + .assertContentType("plain/text"); + } + + @Test + void contentTypeAfterTheBody() { + Unirest.post(MockServer.POST) + .body("Hi") + .contentType("plain/text") + .asObject(RequestCapture.class) + .getBody() + .assertContentType("plain/text"); + } + @Test void testDefaults_String(){ Unirest.post(MockServer.POST)