コード例 #1
0
ファイル: AjaxTask.java プロジェクト: norain2050/mygithub
  @SuppressWarnings("unchecked")
  @Override
  protected Object doInBackground(Ajax... ajaxs) {
    Object data = null;
    final Ajax ajax = mAjax;

    if (ajax == null) return null;

    HttpRequest mHttpRequest = ajax.getHttpRequest();
    if (ajax.getOnProgressListener() != null) {
      mHttpRequest.setOnProgressListener(this);
    }

    if (mAjax.getParser() == null && ajax.getOnSuccessListener() == null) {
      mHttpRequest.setIsNeedResponse(false);
    }

    isError = !mHttpRequest.send();

    if (!isError
        && !isCanceled
        && ajax.getOnSuccessListener() != null
        && mHttpRequest.getHttpStatus() == HttpStatus.SC_OK) {
      @SuppressWarnings("rawtypes")
      final Parser parser = mAjax.getParser();
      try {
        if (parser == null) {
          Log.e(LOG_TAG, "you have set onSuccessListener, but the parser is null");
        } else {
          data = parser.parse(mHttpRequest.getResponseData(), mHttpRequest.getCharset());
        }
      } catch (Exception ex) {
        if (null != parser && TextUtils.isEmpty(parser.getErrMsg())) {
          parser.setErrMsg(IcsonApplication.app.getString(R.string.parser_error_msg));
        }

        isError = true;
        if (Config.DEBUG) {
          Log.e(LOG_TAG, ToolUtil.getStackTraceString(ex));
        }
      }
    }

    return data;
  }