title: WebView download listener is giving Target host must not be null, or set in parameters error
body: <p>In my <code>WebView</code> am trying to download some files from some web sites but on execution of http response it is giving an error saying <code>"Target host must not be null,"</code>.</p>
  
  <p>My piece of code is...</p>
  
  <pre><code>// TODO: Download Listener
      webview.setDownloadListener(new DownloadListener() {
  
      @Override
      public void onDownloadStart(String url, String sUserAgent,
          String contentDisposition, String mimetype,
              long contentLength) {
  
      if (sUserAgent == null) {
      Log.e(TAG + " - Conexion", "Error on useragent");
              }
  
      String PATH = Environment.getExternalStorageDirectory()
                      + "/download/";
          Log.v("", "PATH: " + PATH);
      File file = new File(PATH);
          if (file.mkdirs()) {
      System.out.println("Directry--&gt;" + PATH + " is created");
          }
  
      try {
          mUrl = new URL(url);
          } catch (MalformedURLException e2) {
              e2.printStackTrace();
          }
          String fileName = getFileName(mUrl);
  
      File outputFile = new File(file, fileName);
      try {
          fos = new FileOutputStream(outputFile);
      } catch (FileNotFoundException e1) {
  
          e1.printStackTrace();
          }
  
      client = new DefaultHttpClient();
  
      try {
          HttpPost request = new HttpPost(URLEncoder.encode(url, "UTF-8"));
      } catch (UnsupportedEncodingException e1) {
  
          e1.printStackTrace();
              }
      request.setHeader("User-Agent", sUserAgent);
      try {
          response = client.execute(request);
  
          StatusLine status = response.getStatusLine();
          if (status.getStatusCode() != HTTP_STATUS_OK) {
  
          Toast.makeText(myApp, "Error On Download",Toast.LENGTH_SHORT).show();
      } else {
  
            InputStream in = response.getEntity().getContent();
        byte[] read = new byte[1024];
        int numReadBytes = 0, singleByte;
          boolean endFlow = false;
          do {
              singleByte = in.read();
              endFlow = singleByte == -1;
              if (!endFlow) {
              read[numReadBytes] = (byte) singleByte;
              numReadBytes++;
              }
          } while (!endFlow);
          if (numReadBytes &gt; 0) {
  
          fos.write(read, 0, numReadBytes);
  
          }
      }
      } catch (IOException e) {
      Log.e(TAG + " - Conexion", e.getMessage());
      } catch (ArrayIndexOutOfBoundsException e) {
      Log.e(TAG + " - Conexion", e.getMessage());
          }
  
     }
  });
  </code></pre>