Java 扩展AsyncHTTPClient以添加默认成功回调

Java 扩展AsyncHTTPClient以添加默认成功回调,java,android,inheritance,asynchttpclient,Java,Android,Inheritance,Asynchttpclient,我知道这一定很简单,但我很困惑。我正在我的项目中使用。我想创建一个新类,比如说AsyncHttpClient2,它将扩展AsyncHttpClient。此类当前正在向每个请求添加令牌我希望如果响应是未经授权的,它应该执行一些操作。 这是POST语法: String url = "https://ajax.googleapis.com/ajax/services/search/images"; AsyncHttpClient client = new AsyncHttpClient(); Requ

我知道这一定很简单,但我很困惑。我正在我的项目中使用。我想创建一个新类,比如说
AsyncHttpClient2
,它将扩展
AsyncHttpClient
。此类当前正在向每个请求添加令牌我希望如果响应是未经授权的,它应该执行一些操作。

这是
POST
语法:

String url = "https://ajax.googleapis.com/ajax/services/search/images";
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.put("q", "android");
params.put("rsz", "8");
client.post(url, params, new JsonHttpResponseHandler() {            
    @Override
    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
       // handler code
   }

    @Override
    public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
       // error code
    }
});
这是我的代码:

public class TokenAsyncHttpClient extends AsyncHttpClient {
    public TokenAsyncHttpClient() {
        super();
        this.addHeader("x-access-token", "00000000000000000000000");
    }


    // THIS GIVES ERROR Method does not override method from its superclass

    @Override
    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

        // PERFORM SOME ACTION HERE

    }
}
但是这在
@Override
行中给了我以下错误:

方法不重写其超类中的方法

我做错了什么?如何在onSuccess中添加默认操作?

您应该创建一个类(比如
TokenHttpResponseHandler
),扩展
JsonHttpResponseHandler
,而不是
AsyncHttpClient
,并以这种方式将其传递给客户端
AsyncHttpClient.post(url,参数,new TokenHttpResponseHandler(){…

然后在
TokenHttpResponseHandler
中,您可以覆盖
OnSuccess
OnFailure
并设置其默认行为

例如

您应该创建一个类(比如
TokenHttpResponseHandler
),该类扩展
JsonHttpResponseHandler
,而不是
AsyncHttpClient
,并通过
AsyncHttpClient.post(url、参数、新的TokenHttpResponseHandler(){…
)将其传递给客户端

然后在
TokenHttpResponseHandler
中,您可以覆盖
OnSuccess
OnFailure
并设置其默认行为

例如


阅读后发现AsyncHttpClient没有一个名为
onSuccess
的方法。通过阅读您的问题,您使用的是来自该类的
get
方法,该类依赖于
ResponseHandlerInterface
,该类有其
onSuccess
方法,因此,如果您想更改此方法的行为,您不需要o在某个类中实现
ResponseHandlerInterface
,并在调用中使用该类。

阅读结果表明,AsyncHttpClient没有一个名为
onSuccess
的方法。通过阅读您的问题,您正在使用依赖
ResponseHandlerInterface
的类中的
get
方法有它的
onSuccess
方法,所以如果你想改变这个方法的行为,你需要在某个类中实现
ResponseHandlerInterface
,并在调用中使用这个类。

你有没有试着在onSuccess方法中添加super.onSuccess()呢?@AbdulWaheed它告诉我
无法解析onSuccess()方法
也在super方法中传递int statusCode、Header[]headers、JSONObject响应参数,然后让我know@AbdulWaheed我尝试了
super.onSuccess(statusCode,headers,response)
。现在我得到了一个错误:
无法解析onSuccess(int,…header,…JSONObject)方法。
是否尝试添加super.onSuccess()在onSuccess方法中?@AbdulWaheed它给了我
无法解析方法onSuccess()
在super方法中传递int statusCode、Header[]headers、JSONObject响应参数,然后让我know@AbdulWaheed我尝试了
super.onSuccess(状态码、标题、响应)
。现在我得到了一个错误:
无法解析方法onSuccess(int,…header,…JSONObject)
我创建了这个类:我像使用
client.get一样使用它(dataUrl,new-TokenHttpResponseHandler(){…}
但是日志仍然没有显示通过添加
super.onFailure(statusCode,headers,e,errorResponse)
我在哪里使用它!!我创建了这个类:我像使用客户机.get一样使用它(dataUrl,new TokenHttpResponseHandler(){…}但是日志仍然没有显示。通过添加
super.onFailure(statusCode,Header,e,errorResponse);
我在哪里使用它!!
public class TokenHttpResponseHandler extends JsonHttpResponseHandler {
    public TokenHttpResponseHandler() {
        super();
    }


    @Override
    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

        // PERFORM SOME ACTION HERE

    }
}