add charset to text content type if missing
This commit is contained in:
parent
e41d5cf701
commit
3c7e102765
2 changed files with 13 additions and 6 deletions
|
@ -1,3 +1,3 @@
|
|||
group = org.xbib
|
||||
name = net-http
|
||||
version = 4.0.7
|
||||
version = 4.0.8
|
||||
|
|
|
@ -156,6 +156,9 @@ public abstract class BaseHttpResponseBuilder implements HttpResponseBuilder {
|
|||
return this;
|
||||
}
|
||||
if (HttpHeaderNames.CONTENT_TYPE.equalsIgnoreCase(name.toString())) {
|
||||
if (value.startsWith("text") && charset != null) {
|
||||
value = value + "; charset=" + charset.name().toLowerCase(Locale.ROOT);
|
||||
}
|
||||
setContentType(value);
|
||||
}
|
||||
if (headers.containsHeader(name)) {
|
||||
|
@ -191,7 +194,7 @@ public abstract class BaseHttpResponseBuilder implements HttpResponseBuilder {
|
|||
if (done) {
|
||||
return this;
|
||||
}
|
||||
this.contentType = contentType;
|
||||
this.contentType = Objects.requireNonNull(contentType);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -351,13 +354,17 @@ public abstract class BaseHttpResponseBuilder implements HttpResponseBuilder {
|
|||
public void buildHeaders(long contentLength) {
|
||||
this.length = contentLength;
|
||||
if (!headers.containsHeader(HttpHeaderNames.CONTENT_TYPE)) {
|
||||
if (contentType == null) {
|
||||
contentType = HttpHeaderValues.APPLICATION_OCTET_STREAM;
|
||||
}
|
||||
if (!contentType.contains("charset=") && charset != null) {
|
||||
if (contentType != null && contentType.startsWith("text") && !contentType.contains("charset") && charset != null) {
|
||||
contentType = contentType + "; charset=" + charset.name();
|
||||
}
|
||||
headers.add(HttpHeaderNames.CONTENT_TYPE, contentType);
|
||||
} else {
|
||||
String s = headers.get(HttpHeaderNames.CONTENT_TYPE);
|
||||
if (s != null && s.startsWith("text") && !s.contains("charset") && charset != null) {
|
||||
s = s + "; charset=" + charset.name();
|
||||
}
|
||||
headers.remove(HttpHeaderNames.CONTENT_TYPE);
|
||||
headers.add(HttpHeaderNames.CONTENT_TYPE, s);
|
||||
}
|
||||
if (status == null) {
|
||||
logger.log(Level.WARNING, "no status code set by handlers, assuming OK");
|
||||
|
|
Loading…
Reference in a new issue