<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Get Task</title>
</head>

<body>

<h2><a name="get">Get</a></h2>
<h3>Description</h3>
<p>Gets a file from a URL. When the verbose option is &quot;on&quot;, this task
displays a '.' for every 100 Kb retrieved. Any URL schema supported by
the runtime is valid here, including http:, ftp: and jar:; 
https: is only valid if the appropriate support is added to the pre-1.4 Java
runtimes. 
 
</p>
<p>This task should be preferred above the <a href="cvs.html">CVS task</a> when
fetching remote content. CVS is significantly slower than loading a compressed
archive compared to http/ftp.</p>

The <i>usetimestamp</i> option enables you to control downloads so that the remote file is
only fetched if newer than the local copy. If there is no local copy, the download always takes 
place. When a file is downloaded, the timestamp of the downloaded file is set to the remote timestamp,
if  the JVM is Java1.2 or later. 
NB: This timestamp facility only works on downloads using the HTTP protocol. 
<p>
A username and password can be specified, in which case basic 'slightly encoded
plain text' authentication is used. This is only a secure authentication
mechanism over an HTTPS link.
</p>
 
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
  <tr>
    <td valign="top"><b>Attribute</b></td>
    <td valign="top"><b>Description</b></td>
    <td align="center" valign="top"><b>Required</b></td>
  </tr>
  <tr>
    <td valign="top">src</td>
    <td valign="top">the URL from which to retrieve a file.</td>
    <td align="center" valign="top">Yes</td>
  </tr>
  <tr>
    <td valign="top">dest</td>
    <td valign="top">the file where to store the retrieved file.</td>
    <td align="center" valign="top">Yes</td>
  </tr>
  <tr>
    <td valign="top">verbose</td>
    <td valign="top">show verbose progress information (&quot;on&quot;/&quot;off&quot;).</td>
    <td align="center" valign="top">No; default "false"</td>
  </tr>
  <tr>
    <td valign="top">ignoreerrors</td>
    <td valign="top">Log errors but don't treat as fatal.</td>
    <td align="center" valign="top">No; default "false"</td>
  </tr>
  <tr>
    <td valign="top">usetimestamp</td>
    <td valign="top">conditionally download a file based on the timestamp of the
    local copy. HTTP only</td>
    <td align="center" valign="top">No; default "false"</td>
  </tr>
  <tr>
    <td valign="top">username</td>
    <td valign="top">username for 'BASIC' http authentication</td>
    <td align="center" valign="top">if password is set</td>
  </tr>  
  <tr>
    <td valign="top">password</td>
    <td valign="top">password: required </td>
    <td align="center" valign="top">if username is set</td>
  </tr>  

</table>
<h3>Examples</h3>
<pre>  &lt;get src=&quot;http://jakarta.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
<p>Gets the index page of http://jakarta.apache.org/, and stores it in the file <code>help/index.html</code>.</p>

<pre>  &lt;get src=&quot;http://jakarta.apache.org/builds/tomcat/nightly/ant.zip&quot; 
    dest=&quot;optional.jar&quot; 
    verbose=&quot;true&quot;
    usetimestamp=&quot;true&quot;/&gt;</pre>
<p>
Gets the nightly ant build from the tomcat distribution, if the local copy
is missing or out of date. Uses the verbose option 
for progress information.
</p>

<pre>  &lt;get src=&quot;https://insecure-bank.org/statement/user=1214&quot; 
    dest=&quot;statement.html&quot; 
    username="1214";
    password="secret" /&gt;</pre>
<p>
Fetches some file from a server with access control. Because https is being used the
fact that basic auth sends passwords in plaintext is moot.
<hr>
<p align="center">Copyright &copy; 2001-2002 Apache Software Foundation. All rights
Reserved.</p>

</body>
</html>

