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();
}
}