Exemplo n.º 1
0
  public void open() {
    try {
      URL url = new URL(m_url);

      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setReadTimeout(30 * 1000);
      conn.setConnectTimeout(30 * 1000);

      conn.setRequestMethod(m_method);

      if (m_token != null) conn.setRequestProperty("Authorization", m_token);

      if (m_body != null) {
        conn.setFixedLengthStreamingMode(m_body.length);
        conn.setRequestProperty("Content-Type", m_contentType);
        conn.setDoOutput(true);
      }

      if (m_responseListener != null) conn.setDoInput(true);

      if (m_body != null) {
        DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
        wr.write(m_body);
        wr.close();
      }

      Log.d(TAG, m_method + " " + url);

      m_response.clear();
      int resCode = conn.getResponseCode();
      switch (resCode) {
        case HttpURLConnection.HTTP_UNAUTHORIZED:
          if (m_responseListener != null) m_responseListener.onUnauthorized(m_url, m_token);
          else m_response.putString(RESPONSE_UNAUTHORIZED, m_url);
          break;

        default:
          InputStream is = conn.getInputStream();
          if (m_responseListener != null) m_responseListener.onResponse(resCode, is);
          else m_response.putString(RESPONSE_SUCCESS, URLUtils.convertStreamToString(is));
          is.close();
      }

      conn.disconnect();
    } catch (IOException e) {
      e.printStackTrace();
      if (m_responseListener != null) m_responseListener.onError(e);
      else m_response.putString(RESPONSE_ERROR, e.getMessage());
    }
  }
Exemplo n.º 2
0
    @Override
    protected Void doInBackground(OnResponseListener... params) {
      OnResponseListener l = params[0];
      OkHttpClient httpClient = new OkHttpClient();

      Request request = new Request.Builder().url(QUESTIONS_ENDPOINT).build();
      try {
        Response response = httpClient.newCall(request).execute();

        l.onResponse(new ServerResponse(response.code(), response.body().string()));
      } catch (IOException e) {
        l.onResponse(new ServerResponse(404, "[]"));
      }

      return null;
    }
  /**
   * * 获取更新信息
   *
   * @param context 上下文
   * @param pOnResponseListener 响应监听
   * @return 是否有更新版本
   */
  public void checkUpdate(final Context context, final OnResponseListener pOnResponseListener) {

    // 先检查是否缓存过更新信息
    VersionInfo vi = new VersionInfo();
    StringBuffer savePath = new StringBuffer();
    if (checkCache(context, vi, savePath)) {
      pOnResponseListener.onCache(vi, savePath.toString());
      return;
    }

    if (task == null)
      task =
          new HttpAsyncTask() {
            @Override
            protected void onPostExecute(Boolean result) {
              super.onPostExecute(result);
              task = null;
            }
          };
    else {
      Log.d(tag, "正在进行更新检查");
      return;
    }
    task.execute(
        new IAsyncCallBack() {

          VersionInfo vi;
          VersionInfo newVi;

          @Override
          public boolean workToDo() {
            vi = getCurrentVersionInfo(context);
            newVi = getNewestVersionInfo();

            if (vi == null || newVi == null) return false;
            return true;
          }

          @Override
          public void onComplete() {
            if (newVi.getVersionCode() <= vi.getVersionCode()) {
              updateCache(context, vi);
              if (pOnResponseListener != null) pOnResponseListener.onResponse(true, vi);
            } else {
              updateCache(context, newVi);
              if (pOnResponseListener != null) pOnResponseListener.onResponse(false, newVi);
            }
          }

          @Override
          public void onError() {
            if (pOnResponseListener != null) pOnResponseListener.onError();
          }
        });
  }
Exemplo n.º 4
0
 @Override
 public void run() {
   if (responseListener != null) {
     if (command == COMMAND_START) {
       responseListener.onStart(what);
     } else if (command == COMMAND_FINISH) {
       responseListener.onFinish(what);
     } else if (command == COMMAND_RESPONSE && response != null) {
       if (response.isSucceed()) {
         responseListener.onSucceed(what, response);
       } else {
         responseListener.onFailed(
             what, response.url(), response.getTag(), response.getErrorMessage());
       }
       responseListener.onFinish(what);
     } else if (response == null) {
       responseListener.onFailed(what, null, null, null);
       responseListener.onFinish(what);
     }
   }
 }