Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
完成后获取android AsyncHttpClient响应_Android_Rest_Android Async Http - Fatal编程技术网

完成后获取android AsyncHttpClient响应

完成后获取android AsyncHttpClient响应,android,rest,android-async-http,Android,Rest,Android Async Http,您好,我正在使用AsyncHttpClient向restfulapi发送请求 问题是我想在onSuccess中获得结果,并将其从拥有此方法的类传递给我的活动 public int send(JSONObject parameters,String email,String password){ int i =0; try { StringEntity entity = new StringEntity(parameters.toString());

您好,我正在使用
AsyncHttpClient
restful
api发送请求 问题是我想在
onSuccess
中获得结果,并将其从拥有此方法的类传递给我的活动

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
方法 我试图让方法send
void
并在onSuccess中进行回调,但这会给活动带来很多问题(这是我稍后要问的另一个问题) 那么你有没有办法把i的值作为statusCode来获取呢? 多谢各位

我试图使send方法无效,并在onSuccess内部进行回调

无效的方法是好的

在onSuccess中进行回调可以如下所示

添加回调接口

public interface Callback<T> {
    void onResponse(T response);
}
在调用
send
的方法之外,创建匿名回调类

webServer.send(json, "email", "password", new Callback<Integer>() {
    public void onResponse(Integer response) {
        // do something
    }
});
webServer.send(json,“电子邮件”,“密码”,新回调(){
公共void onResponse(整数响应){
//做点什么
}
});
我试图使send方法无效,并在onSuccess内部进行回调

无效的方法是好的

在onSuccess中进行回调可以如下所示

添加回调接口

public interface Callback<T> {
    void onResponse(T response);
}
在调用
send
的方法之外,创建匿名回调类

webServer.send(json, "email", "password", new Callback<Integer>() {
    public void onResponse(Integer response) {
        // do something
    }
});
webServer.send(json,“电子邮件”,“密码”,新回调(){
公共void onResponse(整数响应){
//做点什么
}
});

欢迎光临。但是,不确定为什么要返回响应代码。您应该返回JSONObject吗?欢迎。但是,不确定为什么要返回响应代码。是否应该返回JSONObject?