hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "yy (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCLIENT-1204) redirect error! java.net.URISyntaxException: Illegal character
Date Thu, 07 Jun 2012 08:05:23 GMT

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

yy commented on HTTPCLIENT-1204:
--------------------------------

I have to fix it.
=======================
 httpClient.setRedirectStrategy(new DefaultRedirectStrategy() {

            @Override
            protected URI createLocationURI(String location) throws ProtocolException {
                try {
                    int index = location.indexOf("?");
                    if (index != -1) {
                        String url = location.substring(0, index + 1);
                        String params = location.substring(index + 1);
                        StringBuilder sb = new StringBuilder(url);
                        String[] pairs = params.split("&");
                        if (pairs != null && pairs.length > 0) {
                            for (String pair : pairs) {
                                String[] param = pair.split("=", 2);
                                if (param != null && param.length == 2) {
                                    sb.append(param[0]).append("=").append(URLEncoder.encode(param[1],
"utf-8")).append("&");
                                }
                            }
                            location = sb.toString();
                        } else if (params.length() > 0) {
                            String[] param = params.split("=", 2);
                            sb.append(param[0]).append("=").append(URLEncoder.encode(param[1],
"utf-8"));
                            location = sb.toString();
                        }
                    }
                } catch (UnsupportedEncodingException e) {
                    logger.error(e.getMessage(), e);
                }
                return super.createLocationURI(location);
            }

        });
                
> redirect error!  java.net.URISyntaxException: Illegal character 
> ----------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1204
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1204
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 4.1.3, 4.2 Final
>         Environment: centos6.2
> jdk1.6u25
>            Reporter: yy
>
> ==========Test.java===================== 
>  HttpClient client = new DefaultHttpClient();
>  HttpGet get = new HttpGet("http://localhost:8080/T/Test");
>  client.execute(get);
>  client.getConnectionManager().shutdown();
> ==========TestServlet.java=============================
>  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
>         response.sendRedirect("/xx?name=||dsdf&user=||");
>     }
> ===============================================
> Throws an exception when I run.
> Exception in thread "main" org.apache.http.client.ClientProtocolException
> 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:909)
> 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
> 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
> 	at com.Test.main(Test.java:20)
> Caused by: org.apache.http.ProtocolException: Invalid redirect URI: http://localhost:8080/xx?name=||dsdf&user=||
> 	at org.apache.http.impl.client.DefaultRedirectStrategy.createLocationURI(DefaultRedirectStrategy.java:189)
> 	at org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:140)
> 	at org.apache.http.impl.client.DefaultRedirectStrategy.getRedirect(DefaultRedirectStrategy.java:209)
> 	at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:1070)
> 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:546)
> 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
> 	... 3 more
> Caused by: java.net.URISyntaxException: Illegal character in query at index 30: http://localhost:8080/xx?name=||dsdf&user=||
> 	at java.net.URI$Parser.fail(URI.java:2810)
> 	at java.net.URI$Parser.checkChars(URI.java:2983)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3073)
> 	at java.net.URI$Parser.parse(URI.java:3015)
> 	at java.net.URI.<init>(URI.java:577)
> 	at org.apache.http.impl.client.DefaultRedirectStrategy.createLocationURI(DefaultRedirectStrategy.java:187)
> 	... 8 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message