1

我正在使用 Android 异步 http 发送一个发布请求,并且似乎响应为空。我认为这是因为 AsyncHttpResponseHandler 的 onSuccess 没有被调用。这是我的发帖请求:

final String response[] = new String[1];
PersistentCookieStore myCookieStore = new PersistentCookieStore(act);
client.setCookieStore(myCookieStore);
RequestParams params = new RequestParams();
params.put("user_id", username);
params.put("password", password);
//other params
client.post(url, params, new AsyncHttpResponseHandler() {
    @Override
     public void onSuccess(int res, Header[] headers, byte[] body ) {
        //Logs don't get called
        Log.i("test", ""+res);
        Log.i("test", new String(body));
            response[0] = ""+ res;
            response[1] = new String(body);
    }
});
return response;

编辑:添加 onFailure 并打印堆栈后,我得到了这个:

org.apache.http.client.HttpResponseException: Internal Server Error
12-29 13:42:12.450    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:440)
12-29 13:42:12.450    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:78)
12-29 13:42:12.454    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:91)
12-29 13:42:12.454    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:54)
12-29 13:42:12.458    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
12-29 13:42:12.458    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-29 13:42:12.458    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-29 13:42:12.462    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-29 13:42:12.462    2359-2386/com.sblive.aufschoolbliz W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
4

1 回答 1

3

它实际上是 http 错误 500(内部服务器错误)。此问题是由服务器端而不是客户端引起的。请尝试获取500的响应代码。最终它应该在服务器端而不是客户端处理。

于 2013-12-29T13:50:23.827 回答