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
}
}