public void download()

in commons-transfer/commons-transfer-http/src/main/java/org/apache/archiva/commons/transfer/http/HttpTransferDownloader.java [68:121]


    public void download( URI uri, File outputFile )
        throws TransferException, IOException
    {
        assertURI( uri );
        URI absoluteURI = baseuri.resolve( uri );
        initProxy( absoluteURI );
        initAuth();

        String url = absoluteURI.toASCIIString();
        GetMethod getmethod = new GetMethod( url );
        try
        {
            getmethod.setFollowRedirects( true );

            int status = client.executeMethod( getmethod );

            if ( status != 200 )
            {
                triggerFailure( absoluteURI, status );
                switch ( status )
                {
                    case HttpStatus.SC_UNAUTHORIZED:
                    case HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED:
                        throw new TransferAuthenticationRequiredException( HttpStatus.getStatusText( status ) + " - "
                            + uri );
                    default:
                        throw new TransferException( "Error[" + status + ":" + HttpStatus.getStatusText( status )
                            + "] " + uri );
                }
            }

            long expectedSize = getmethod.getResponseContentLength();

            InputStream input = null;
            OutputStream output = null;

            try
            {
                input = getmethod.getResponseBodyAsStream();
                output = new FileOutputStream( outputFile );

                transfer( absoluteURI, input, output, expectedSize );
            }
            finally
            {
                IOUtils.closeQuietly( output );
                IOUtils.closeQuietly( input );
            }
        }
        finally
        {
            getmethod.releaseConnection();
        }
    }