You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "a2398723957 (JIRA)" <ji...@apache.org> on 2010/08/29 18:56:53 UTC

[jira] Commented: (HTTPCLIENT-884) Charset omitted from UrlEncodedFormEntity Content-Type header

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903988#action_12903988 ] 

a2398723957 commented on HTTPCLIENT-884:
----------------------------------------

i've just switched from hc-client-4.0.0 to hc-client-4.0.1 and my code stopped working right!
the remote server i send post request to replies with "getcgivars(): Unsupported Content-Type."
the problem is that after this fix the hc client sends:
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
instead of
"Content-Type: application/x-www-form-urlencoded"

are you sure you've done the righ fix Jared Jacobs?

thanks.


> 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
>            Priority: Minor
>             Fix For: 4.0.1, 4.1 Alpha1
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> 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: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org