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

Toshimasa NASU edited comment on HTTPCLIENT-1367 at 6/7/13 10:12 AM:
---------------------------------------------------------------------

Oleg
thank you for comment.

I want an redirect URL when it was redirected.
I refer to 'http.protocol.redirect-locations' first.
next 'http.cookie-origin'.

When I restore an redirect URL from Cookie, '/' becomes '%2f'.
Because I cannot restore an redirect URL, I want RAW PATH.

//
        Object redirect = 
context.getAttribute(DefaultRedirectStrategy.REDIRECT_LOCATIONS);
        if (redirect instanceof RedirectLocations) {
            RedirectLocations locations = (RedirectLocations)redirect;
            List list = locations.getAll();
            return list.get(list.size() - 1).toString();
        }

        Object cookie = context.getAttribute(ClientContext.COOKIE_ORIGIN);
        if (cookie instanceof CookieOrigin) {
            CookieOrigin origin = (CookieOrigin)cookie;
            StringBuilder buf = new StringBuilder();
            if (origin.isSecure()) {
                buf.append("https://";);
            } else {
                buf.append("http://";);
            }
            buf.append(origin.getHost());
            if (origin.getPort() > 0 && origin.getPort() != 80 && 
origin.getPort() != 443) {
                buf.append(":" + String.valueOf(origin.getPort()));
            }
            buf.append(origin.getPath());
            return buf.toString();
        }
        return null;
//
                
      was (Author: nasu_t):
    Oleg
thank you for comment.

I want an redirect URL when it was redirected.
I refer to 'http.protocol.redirect-locations' first.
next 'http.cookie-origin'.

When I restore an redirect URL from Cookie, '/' becomes '%2f'.
Because I cannot restore an redirect URL, I want RAW PATH.

//
                Object redirect = 
context.getAttribute(DefaultRedirectStrategy.REDIRECT_LOCATIONS);
                if (redirect instanceof RedirectLocations) {
                        RedirectLocations locations = 
(RedirectLocations)redirect;
                        List list = locations.getAll();
                        return list.get(list.size() - 1).toString();
                }

                Object cookie = 
context.getAttribute(ClientContext.COOKIE_ORIGIN);
                if (cookie instanceof CookieOrigin) {
                        CookieOrigin origin = (CookieOrigin)cookie;
                        StringBuilder buf = new StringBuilder();
                        if (origin.isSecure()) {
                                buf.append("https://";);
                        } else {
                                buf.append("http://";);
                        }
                        buf.append(origin.getHost());
                        if (origin.getPort() > 0 && origin.getPort() != 80 && 
origin.getPort() != 443) {
                                buf.append(":" + 
String.valueOf(origin.getPort()));
                        }
                        buf.append(origin.getPath());
                        return buf.toString();
                }
                return null;
//
                  
> decoded PATH of cookie value in CookieOrigin
> --------------------------------------------
>
>                 Key: HTTPCLIENT-1367
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1367
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>            Reporter: Toshimasa NASU
>
> I used CookieOrigin. but path was decoded.
> org.apache.http.client.protocol.RequestAddCookies#process(HttpRequest, 
> HttpContext)
> //
>         URI requestURI;
>         if (request instanceof HttpUriRequest) {
>             requestURI = ((HttpUriRequest) request).getURI();
>         } else {
>             try {
>                 requestURI = new URI(request.getRequestLine().getUri());
>             } catch (URISyntaxException ex) {
>                 throw new ProtocolException("Invalid request URI: " +
>                         request.getRequestLine().getUri(), ex);
>             }
>         }
> //
>         CookieOrigin cookieOrigin = new CookieOrigin(
>                 hostName,
>                 port,
>                 requestURI.getPath(), // THIS IS PROBLEM.
>                 //requestURI.getRawPath(), // I HOPE THIS. because 
> "requestURI.getPath()" was decoded PATH.
>                 conn.isSecure());
> //

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to