Traling slash is not added to the end of Location header value when proccessing 
redirect.
-----------------------------------------------------------------------------------------

                 Key: HTTPCLIENT-899
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-899
             Project: HttpComponents HttpClient
          Issue Type: Bug
    Affects Versions: 4.0.1
         Environment: httpclient-4.0.1
            Reporter: Alexey Fansky


When httpclient receives 302(or any other redirect) response from server, it 
redirects directly to Location header value without adding trailing slash to 
the end of uri. Please see log:

13:01:03,627 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultClientConnection - Receiving response: 
HTTP/1.0 302 Found
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << HTTP/1.0 
302 Found
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Date: Fri, 
11 Dec 2009 11:01:05 GMT
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Server: 
ZX_Spectrum/1997 (Sinclair_BASIC)
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << 
Set-Cookie: Virtual_id=26; path=/; domain=.yandex.ru;
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << Location: 
http://narod.yandex.ru
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << 
Content-Type: text/html; charset=windows-1251
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << X-Cache: 
MISS from narod.yandex.ru
13:01:03,627 DEBUG threadPoolExecuter-1 org.apache.http.headers - << 
Connection: close
13:01:03,627 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.ResponseProcessCookies - Cookie accepted: 
"[version: 0][name: Virtual_id][value: 26][domain: .yandex.ru][path: /][expiry: 
null]". 
13:01:03,627 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.DefaultRedirectHandler - Redirect requested to 
location 'http://narod.yandex.ru'
13:01:03,627 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.ClientParamsStack - 'http.route.default-proxy': 
http://79.117.160.xxx:8000
13:01:03,627 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.DefaultRequestDirector - Redirecting to 
'http://narod.yandex.ru' via 
HttpRoute[{}->http://79.117.160.xxx:8000->http://narod.yandex.ru]
13:01:03,627 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultClientConnection - Connection closed
13:01:03,811 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.ClientParamsStack - 'http.tcp.nodelay': true
13:01:03,811 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.ClientParamsStack - 'http.socket.buffer-size': 8192
13:01:03,811 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.ClientParamsStack - 'http.protocol.version': 
HTTP/1.1
13:01:03,811 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.ClientParamsStack - 'http.useragent': Mozilla/4.0 
(compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.02
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.ClientParamsStack - 'http.protocol.cookie-policy': 
compatibility
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - CookieSpec selected: 
compatibility
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: 
yandex_mail][value: o-razocharovannyi2009][domain: .yandex.ru][path: /][expiry: 
null] match [narod.yandex.ru:80/]
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: 
yandex_login][value: o.razocharovannyi2009][domain: .yandex.ru][path: 
/][expiry: null] match [narod.yandex.ru:80/]
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: 
Session_id][value: 
1260529235.-4301.0.79308534.2:216563882:250.8:1260529235871:1333108959:15.62953.10893.2cc1963276a9d131887679b99a753abf][domain:
 .yandex.ru][path: /][expiry: null] match [narod.yandex.ru:80/]
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: 
L][value: 
Rlc7XlBoBGJjY0FWfkZ4WnVWAlhja1puCQ1FKUVAVjUBXTMMHwQuCQwXZxgXDSgiXS9KXj4QWhouDGAJSFY1fw==.1260529235.6343.211563.a4588e45abb86ea112f2c24ab959eca9][domain:
 .yandex.ru][path: /][expiry: Thu Mar 11 13:00:35 EET 2010] match 
[narod.yandex.ru:80/]
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: 
yandexuid][value: 872959911260529238][domain: .yandex.ru][path: /][expiry: Mon 
Dec 09 13:00:38 EET 2019] match [narod.yandex.ru:80/]
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.client.protocol.RequestAddCookies - Cookie [version: 0][name: 
Virtual_id][value: 26][domain: .yandex.ru][path: /][expiry: null] match 
[narod.yandex.ru:80/]
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.impl.client.DefaultRequestDirector - Attempt 5 to execute 
request
13:01:03,812 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultClientConnection - Sending request: GET 
http://narod.yandex.ru HTTP/1.1
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "GET 
http://narod.yandex.ru HTTP/1.1[EOL]"
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "Host: 
narod.yandex.ru[EOL]"
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> 
"Proxy-Connection: Keep-Alive[EOL]"
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "User-Agent: 
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.02[EOL]"
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "Cookie: 
yandex_mail=o-razocharovannyi2009; yandex_login=o.razocharovannyi2009; 
Session_id=1260529235.-4301.0.79308534.2:216563882:250.8:1260529235871:1333108959:15.62953.10893.2cc1963276a9d131887679b99a753abf;
 
L=Rlc7XlBoBGJjY0FWfkZ4WnVWAlhja1puCQ1FKUVAVjUBXTMMHwQuCQwXZxgXDSgiXS9KXj4QWhouDGAJSFY1fw==.1260529235.6343.211563.a4588e45abb86ea112f2c24ab959eca9;
 yandexuid=872959911260529238; Virtual_id=26[EOL]"
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.wire - >> "[EOL]"
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> GET 
http://narod.yandex.ru HTTP/1.1
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> Host: 
narod.yandex.ru
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> 
Proxy-Connection: Keep-Alive
13:01:03,812 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.02
13:01:03,813 DEBUG threadPoolExecuter-1 org.apache.http.headers - >> Cookie: 
yandex_mail=o-razocharovannyi2009; yandex_login=o.razocharovannyi2009; 
Session_id=1260529235.-4301.0.79308534.2:216563882:250.8:1260529235871:1333108959:15.62953.10893.2cc1963276a9d131887679b99a753abf;
 
L=Rlc7XlBoBGJjY0FWfkZ4WnVWAlhja1puCQ1FKUVAVjUBXTMMHwQuCQwXZxgXDSgiXS9KXj4QWhouDGAJSFY1fw==.1260529235.6343.211563.a4588e45abb86ea112f2c24ab959eca9;
 yandexuid=872959911260529238; Virtual_id=26
13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<!DOCTYPE 
HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">[EOL]"
13:01:06,374 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.wire - << 
"<HTML><HEAD>[EOL]"
13:01:06,374 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: 
<HTML><HEAD>
13:01:06,374 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<TITLE>400 
Bad Request</TITLE>[EOL]"
13:01:06,375 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: 
<TITLE>400 Bad Request</TITLE>
13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << 
"</HEAD><BODY>[EOL]"
13:01:06,375 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: 
</HEAD><BODY>
13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "<H1>Bad 
Request</H1>[EOL]"
13:01:06,375 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: <H1>Bad 
Request</H1>
13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "Your browser 
sent a request that this server could not understand.<P>[EOL]"
13:01:06,375 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: Your 
browser sent a request that this server could not understand.<P>
13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << "Invalid URI 
in request GET  HTTP/1.1<P>[EOL]"
13:01:06,375 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: Invalid 
URI in request GET  HTTP/1.1<P>
13:01:06,375 DEBUG threadPoolExecuter-1 org.apache.http.wire - << 
"</BODY></HTML>[EOL]"
13:01:06,375 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultResponseParser - Garbage in response: 
</BODY></HTML>
13:01:08,374 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultClientConnection - Connection closed
13:01:08,374 DEBUG threadPoolExecuter-1 
org.apache.http.impl.conn.DefaultClientConnection - Connection shut down



-- 
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]

Reply via email to