title: How can I download a file using a simple HttpClient example?
body: <p>I'm new with Java and HttpClient, and I'm trying to do a simple download from a Dropbox file but I just get the following exception:</p>
  
  <pre><code>Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
      at org.apache.http.impl.client.AbstractHttpClient.&lt;init&gt;(AbstractHttpClient.java:187)
      at org.apache.http.impl.client.DefaultHttpClient.&lt;init&gt;(DefaultHttpClient.java:146)
      at downlaodtest.DownlaodTest.main(DownlaodTest.java:23)
  Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
      ... 3 more
  Java Result: 1
  </code></pre>
  
  <p>Why is the exception thrown?</p>
  
  <pre><code>public class DownlaodTest {
    public static void main(String[] args) throws IOException {
      HttpClient httpclient = new DefaultHttpClient();
      HttpGet httpget = new HttpGet("https://dl.dropbox.com/s/ex4clsfmiu142dy/test.zip");
      HttpResponse response = httpclient.execute(httpget);
      System.out.println(response.getStatusLine());
      HttpEntity entity = response.getEntity();
      if (entity != null) {
        InputStream instream = entity.getContent();
        try {
          BufferedInputStream bis = new BufferedInputStream(instream);
          String filePath = "C:/@Victor";
          BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(filePath)));
          int inByte;
          while ((inByte = bis.read()) != -1 ) {
            bos.write(inByte);
          }
          bis.close();
          bos.close();
        } catch (IOException ex) {
          throw ex;
        } catch (RuntimeException ex) {
          httpget.abort();
          throw ex;
        } finally {
          instream.close();
        }
        httpclient.getConnectionManager().shutdown();
      }
    }
  }
  </code></pre>