[
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.