[
http://issues.apache.org/jira/browse/HTTPCLIENT-603?page=comments#action_12437764
]
Ortwin Glück commented on HTTPCLIENT-603:
-----------------------------------------
Jean,
Request line and headers can only use ASCII. I guess you are trying to send
UTF-8 characters in the request URI like so:
GET /servlet/p=voilà
This is wrong, as non-ASCII characters must be URL-encoded in an encoding that
you agreed upon with the server:
GET /servlet/p=voil%C3%A0
Please use HttpMethodBase.setQueryString(NameValuePair[]) to set the GET
parameters:
method.setQueryString(new NameValuePair[] { new NameValuePair("p", "voilà") } );
> encoding problem in httpMethodBase#writeRequestLine(HttpState, HttpConnection)
> ------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-603
> URL: http://issues.apache.org/jira/browse/HTTPCLIENT-603
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient
> Affects Versions: 3.0.1, 3.1 Alpha 1, Nightly Builds
> Reporter: Jean Seurin
>
> Trying to encode Chinese character in URL, I had to play with
> setContentCharset method.
> I had to debug HttpClient since setting this parameter had no effect.
> I realized that in
> <Code>
> protected void writeRequestLine(HttpState state, HttpConnection conn)
> throws IOException, HttpException {
> LOG.trace(
> "enter HttpMethodBase.writeRequestLine(HttpState,
> HttpConnection)");
> String requestLine = getRequestLine(conn);
> if (Wire.HEADER_WIRE.enabled()) {
> Wire.HEADER_WIRE.output(requestLine);
> }
> conn.print(requestLine, getParams().getHttpElementCharset());
> }
> </Code>
> conn.print(requestLine, getParams().getHttpElementCharset()); should be
> conn.print(requestLine, getParams().getContentCharset());
> since it is used to write the content line to the connection and not the
> header.
> With the current code, to be able to successfully send UTF-8 encoding char, I
> have to use:
> client.getParams().setHttpElementCharset("UTF-8");
> which seems to be bad practice according to the doc. Header encoding should
> always use its default"US-ASCII"
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]