完成后获得 android AsyncHttpClient 响应
get android AsyncHttpClient response after it finish
你好,我正在使用 AsyncHttpClient
向 restful
发送请求 api
问题是我想在 onSuccess
中得到结果并将其从使用此方法的 class 传递给我的 activity
public int send(JSONObject parameters,String email,String password){
int i =0;
try {
StringEntity entity = new StringEntity(parameters.toString());
entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
client.setBasicAuth(email,password);
client.post(context, "http://10.0.2.2:8080/webapi/add", entity, "application/json",
new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {
JSONObject json = new JSONObject(
new String(responseBody));
i=statusCode;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return i;
}
当然我总是得到i=0
;因为它是 Async
方法
我试图让方法发送 void
并在 onSuccess 中进行回调,但这会在 activity 中产生很多问题(这是我稍后会问的另一个问题)
那么你有没有办法将 i 的值作为 statusCode?
谢谢。
I tried to make the method send void and make a callback inside onSuccess
无效的方法很好。
在 onSuccess 中进行回调可以如下所示
添加回调接口
public interface Callback<T> {
void onResponse(T response);
}
将其用作参数并使方法无效
public void send(
JSONObject parameters,
String email,
String password,
final Callback<Integer> callback) // Add this
然后,在 onSuccess
方法中,当你得到结果时做
if (callback != null) {
callback.onResponse(statusCode);
}
在调用 send
的方法之外,创建匿名回调 class
webServer.send(json, "email", "password", new Callback<Integer>() {
public void onResponse(Integer response) {
// do something
}
});
你好,我正在使用 AsyncHttpClient
向 restful
发送请求 api
问题是我想在 onSuccess
中得到结果并将其从使用此方法的 class 传递给我的 activity
public int send(JSONObject parameters,String email,String password){
int i =0;
try {
StringEntity entity = new StringEntity(parameters.toString());
entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
client.setBasicAuth(email,password);
client.post(context, "http://10.0.2.2:8080/webapi/add", entity, "application/json",
new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {
JSONObject json = new JSONObject(
new String(responseBody));
i=statusCode;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return i;
}
当然我总是得到i=0
;因为它是 Async
方法
我试图让方法发送 void
并在 onSuccess 中进行回调,但这会在 activity 中产生很多问题(这是我稍后会问的另一个问题)
那么你有没有办法将 i 的值作为 statusCode?
谢谢。
I tried to make the method send void and make a callback inside onSuccess
无效的方法很好。
在 onSuccess 中进行回调可以如下所示
添加回调接口
public interface Callback<T> {
void onResponse(T response);
}
将其用作参数并使方法无效
public void send(
JSONObject parameters,
String email,
String password,
final Callback<Integer> callback) // Add this
然后,在 onSuccess
方法中,当你得到结果时做
if (callback != null) {
callback.onResponse(statusCode);
}
在调用 send
的方法之外,创建匿名回调 class
webServer.send(json, "email", "password", new Callback<Integer>() {
public void onResponse(Integer response) {
// do something
}
});