[ https://issues.apache.org/jira/browse/VFS-194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12561011#action_12561011 ]
Mario Ivankovits commented on VFS-194: -------------------------------------- could you attach a "svn diff" with the whole patch please. Thanks! Mario > Redirect of HTTP url using the header location > ---------------------------------------------- > > Key: VFS-194 > URL: https://issues.apache.org/jira/browse/VFS-194 > Project: Commons VFS > Issue Type: Wish > Environment: Windows XP/Linux/FreeBSD > Reporter: Yves Zoundi > > The http provider classes don't test the header location before resolving a > file. If the redirection is reported as invalid by commons-httpclient, then > the HttpFileObject is not resolved. Here is how to fix it in all the http > provider implementation classes. > int status = 0;//client.executeMethod(method); > try{ > status = client.executeMethod(method); > System.out.println("method executed"); > } > catch(Exception e){ > System.out.println("Exception co"); > try{ > HostConfiguration config = > client.getHostConfiguration(); > Header header = > method.getResponseHeader("Location"); > System.out.println("Checking header"); > if (header != null) { > > String redirectUrl = header.getValue(); > config.setHost(new > java.net.URL(redirectUrl).getHost(), config.getPort(), config.getProtocol()); > client.setHostConfiguration(config); > status = client.executeMethod(method); > > } > } > catch(Exception err){ > throw new Exception(err); > } > > } > if ((status >= 300) && (status < 400)) { > try{ > HostConfiguration config = > client.getHostConfiguration(); > Header header = > method.getResponseHeader("Location"); > if (header != null) { > > String redirectUrl = header.getValue(); > method = new HeadMethod(); > setupMethod(method); > config.setHost(new > java.net.URL(redirectUrl).getHost(), config.getPort(), config.getProtocol()); > client.setHostConfiguration(config); > status = client.executeMethod(method); > > } > } > catch(Exception err){ > throw new Exception(err); > } > } > method.releaseConnection(); > if (status == HttpURLConnection.HTTP_OK) > { > return FileType.FILE; > } > else if (status == HttpURLConnection.HTTP_NOT_FOUND > || status == HttpURLConnection.HTTP_GONE) > { > return FileType.IMAGINARY; > } > else > { > throw new FileSystemException("vfs.provider.http/head.error", > getName()); > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.