Charset omitted from UrlEncodedFormEntity Content-Type header
-------------------------------------------------------------
Key: HTTPCLIENT-884
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-884
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient
Affects Versions: 4.0 Final
Environment: all
Reporter: Jared Jacobs
UrlEncodedFormEntity sets the Content-Type header to:
"application/x-www-form-urlencoded"
It should set the header to:
"application/x-www-form-urlencoded; charset=" + charset
As a result, content can be misinterpreted by the recipient (e.g. if the entity
content includes multibyte Unicode characters encoded with the "UTF-8" charset).
For a correct example of specifying the charset in the Content-Type header, see
StringEntity.java.
Here's the fix:
public UrlEncodedFormEntity (
final List <? extends NameValuePair> parameters,
final String encoding) throws UnsupportedEncodingException {
super(URLEncodedUtils.format(parameters, encoding), encoding);
- setContentType(URLEncodedUtils.CONTENT_TYPE);
+ setContentType(URLEncodedUtils.CONTENT_TYPE + HTTP.CHARSET_PARAM +
+ (encoding != null ? encoding : HTTP.DEFAULT_CONTENT_CHARSET));
}
public UrlEncodedFormEntity (
final List <? extends NameValuePair> parameters) throws
UnsupportedEncodingException {
- super(URLEncodedUtils.format(parameters,
HTTP.DEFAULT_CONTENT_CHARSET),
- HTTP.DEFAULT_CONTENT_CHARSET);
- setContentType(URLEncodedUtils.CONTENT_TYPE);
+ this(parameters, HTTP.DEFAULT_CONTENT_CHARSET);
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]