On Sat, 2004-02-28 at 11:43, Emre Sokullu wrote: > Thanx Oleg for your reply, > > Yes I've already tried what is written on "Redirects Tutorial page". But the > fact is that, the following procedure does not work for me : > > Header locationHeader = method.getResponseHeader("location"); > > Even for the redirected sites like http://www.google.com, it does return a > null value. Not just google fo every reidrected page. >
Emre, I find it highly improbable that ALL the sites (including such a high profile site like google) return invalid redirect header. Please post a complete HTTP session log (wire/debug log turned on), so I could have a closer look at what really gets transmitted across the wire and how HttpClient interprets the response(s). Oleg > I've tried to solve the problem by simply commenting the following if > condition from the checkValidUri() method in HttpMethodBase class: > > /* > > try { > > String oldHost = currentUri.getHost(); > > String newHost = redirectUri.getHost(); > > if (!oldHost.equalsIgnoreCase(newHost)) { > > throw new HttpException("Redirect from host " + oldHost > > + " to " + newHost + " is not supported"); > > } > > } catch (URIException e) { > > LOG.warn("Error getting URI host", e); > > throw new HttpException("Invalid Redirect URI from: " > > + currentUri.getEscapedURI() + " to: " + redirectUri.getEscapedURI() > > ); > > } > > */ > > > > But the main problem is that the URL to conect can't be extracted from the > location header. > > I hope I don't waste your time, but it sounds like a bug to me.... > > Thanx for your help.. > > > > > > > > > > ----- Original Message ----- > From: "Kalnichevski, Oleg" <[EMAIL PROTECTED]> > To: "Commons HttpClient Project" <[EMAIL PROTECTED]> > Sent: Friday, February 27, 2004 7:45 PM > Subject: RE: 302 !! > > > > > org.apache.commons.httpclient.HttpException: Redirect from host > www.google.com to www.google.com.tr is not supported > > Emre, > > www.google.com != www.google.com.tr > > HttpClient 2.0 does not support cross host redirects. Period. We are sorry. > > The redirect guide you have already been referred to explains why and what > can be done to work the problem around > > http://jakarta.apache.org/commons/httpclient/redirects.html > > Development (unstable) version of HttpClient can automatically handle > cross-host redirects already. > > Oleg > > -----Original Message----- > From: Emre Sokullu [mailto:[EMAIL PROTECTED] > Sent: Friday, February 27, 2004 18:26 > To: Commons HttpClient Project > Subject: 302 !! > > > Hi all, I still couldn't solve my problem with http status 302 : > > When I try to connect Google, it redirects me to the local page : > http://www.google.com.tr > > At this status, I want to catch the new address and try to reconnect but > such a failure occurs : > > > > 27.Ìub.2004 17:48:13 org.apache.commons.httpclient.HttpMethodBase > checkValidRedirect > WARNING: Error getting URI host > org.apache.commons.httpclient.HttpException: Redirect from host > www.google.com to www.google.com.tr is not supported > at > org.apache.commons.httpclient.HttpMethodBase.checkValidRedirect(HttpM > ethodBase.java:1243) > at > org.apache.commons.httpclient.HttpMethodBase.processRedirectResponse( > HttpMethodBase.java:1191) > at > org.apache.commons.httpclient.HttpMethodBase.isRetryNeeded(HttpMethod > Base.java:977) > at > org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.j > ava:1095) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav > a:675) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav > a:529) > at WebClient.fetchHTML(WebClient.java:343) > at Jetch.<init>(Jetch.java:99) > at d2.main(d2.java:26) > 27.Ìub.2004 17:48:13 org.apache.commons.httpclient.HttpMethodBase > processRedirectResponse > WARNING: Invalid Redirect URI from: http://www.google.com:80/ to: > http://www.google.com.tr/cxfer?c=PREF%3D:TM%3D1077896890:S%3D-1ZixmjyLNwVsU1 > 6 > > > And my code is the following : > > > > HttpMethod method; > > if (this.methodPost) { > method = new PostMethod(this.url); > } > else { > method = new GetMethod(this.url); > > } > > method.setStrictMode(false); // also tried true; the same result > method.setFollowRedirects(true); > > > Header locationHeader = method.getResponseHeader("location"); > > > if(locationHeader != null ) { > > String redirectLocation = locationHeader.getValue(); > this.tryAgain(redirectLocation); > return; > > } else {} > > > > int attempt = 0; > while (this.statusCode == -1 && attempt < 10) { > try { > this.statusCode = this.client.executeMethod(method); > } > catch (HttpRecoverableException e) { > System.err.println( > "A recoverable exception occurred, retrying." + > e.getMessage()); > } > catch (IOException e) { > System.err.println("Failed to download file."); > e.printStackTrace(); > System.exit( -1); > } > } > > > this.responseBody = method.getResponseBodyAsString(); > > method.releaseConnection(); > > > Thanx very much for your interest... > > **************************************************************************** > *********************** > The information in this email is confidential and may be legally privileged. > Access to this email by anyone other than the intended addressee is > unauthorized. If you are not the intended recipient of this message, any > review, disclosure, copying, distribution, retention, or any action taken or > omitted to be taken in reliance on it is prohibited and may be unlawful. If > you are not the intended recipient, please reply to or forward a copy of > this message to the sender and delete the message, any attachments, and any > copies thereof from your system. > **************************************************************************** > *********************** > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]