private boolean handleHTTPLoad() {
    if (mHeaders == null) {
      mHeaders = new HashMap<String, String>();
    }
    populateStaticHeaders();
    populateHeaders();

    // response was handled by UrlIntercept, don't issue HTTP request
    if (handleUrlIntercept()) return true;

    // response was handled by Cache, don't issue HTTP request
    if (handleCache()) {
      // push the request data down to the LoadListener
      // as response from the cache could be a redirect
      // and we may need to initiate a network request if the cache
      // can't satisfy redirect URL
      mListener.setRequestData(mMethod, mHeaders, mPostData, mIsHighPriority);
      return true;
    }

    if (WebView.LOGV_ENABLED) {
      Log.v(LOGTAG, "FrameLoader: http " + mMethod + " load for: " + mListener.url());
    }

    boolean ret = false;
    int error = EventHandler.ERROR_UNSUPPORTED_SCHEME;

    try {
      ret = mNetwork.requestURL(mMethod, mHeaders, mPostData, mListener, mIsHighPriority);
    } catch (android.net.ParseException ex) {
      error = EventHandler.ERROR_BAD_URL;
    } catch (java.lang.RuntimeException ex) {
      /* probably an empty header set by javascript.  We want
      the same result as bad URL  */
      error = EventHandler.ERROR_BAD_URL;
    }
    if (!ret) {
      mListener.error(
          error,
          mListener
              .getContext()
              .getText(EventHandler.errorStringResources[Math.abs(error)])
              .toString());
      return false;
    }
    return true;
  }