diff --git a/coverage-report/src/test/java/org/jooby/issues/Issue730.java b/coverage-report/src/test/java/org/jooby/issues/Issue730.java new file mode 100644 index 0000000000..12824a46df --- /dev/null +++ b/coverage-report/src/test/java/org/jooby/issues/Issue730.java @@ -0,0 +1,23 @@ +package org.jooby.issues; + +import org.jooby.test.ServerFeature; +import org.junit.Test; + +public class Issue730 extends ServerFeature { + + { + get("/730", (req, rsp) -> { + rsp.header("content-type", "application/json"); + rsp.send("{\"issue\": \"730\"}"); + }); + + } + + @Test + public void contentTypeShouldWorkFromSetHeader() throws Exception { + request().get("/730") + .execute() + .header("Content-Type", "application/json;charset=utf-8"); + } + +} diff --git a/jooby/src/main/java/org/jooby/internal/ResponseImpl.java b/jooby/src/main/java/org/jooby/internal/ResponseImpl.java index 9d87303e23..a070bab7bf 100644 --- a/jooby/src/main/java/org/jooby/internal/ResponseImpl.java +++ b/jooby/src/main/java/org/jooby/internal/ResponseImpl.java @@ -446,6 +446,10 @@ private Response setHeader(final String name, final Object value) { } rsp.header(LOCATION, location); } else { + if ("Content-Type".equalsIgnoreCase(name)) { + // keep type reference + this.type = MediaType.valueOf(value.toString()); + } rsp.header(name, Headers.encode(value)); } }