0

我有以下心智模型,对于我的 android 应用程序,所有身份验证失败都应该在一个地方处理,并且登录屏幕应该中断并在视图堆栈顶部闪烁以允许用户重新进行身份验证。

不确定如何使用 AsyncHTTPClient 执行此操作。

我不想继续为我发出的每个 GET 和 POST 请求处理 401 和 404 请求。听起来像很多重复的代码。因此,例如,对于 google 和 CNN,如果我没有经过身份验证,我不想重复代码来处理 CNN 和 google 的 401 未经过身份验证的代码,因为它是完全相同的代码。

谢谢!

 AsyncHttpClient client = new AsyncHttpClient();
 client.get("http://www.google.com", new AsyncHttpResponseHandler() {
     @Override
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
          System.out.println(response);
     }
     @Override
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable
 error)
 {
          error.printStackTrace(System.out);if 401, TELL USER he has to log in again

     }
 });

 AsyncHttpClient client = new AsyncHttpClient();
 client.get("http://www.cnn.com", new AsyncHttpResponseHandler() {
     @Override
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
          System.out.println(response);
     }
     @Override
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable
 error)
 {
          error.printStackTrace(System.out);if 401, TELL USER he has to log in again

     }
 });
4

1 回答 1

0

创建自己的子类AsyncHttpResponseHandleronFailure单独实现;在其中添加所有故障处理逻辑。

使用这个子类client.get代替你的AsyncHttpResponseHandler,只是实现onSuccess.

    client.get("http://www.cnn.com", new MyAsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
            System.out.println(response);
        }
        // onFailure handled by common code in MyAsyncHttpResponseHandler
     }
于 2014-11-30T07:06:15.790 回答