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

Reply via email to