我正在尝试使用 loopj 的async http library将 POST 发送到服务器。以下代码非常标准,但我无法让它工作。
我已经调试了很多并检查了以下内容:
- 网址是正确的。
- 参数是正确的,它们被正确地存储到 params 变量中。
似乎HttpResponse response = client.execute(request, context);
在请求中调用时AsyncHttpRequest.makeRequest()
不包含任何参数:
编辑:在查看代码后,似乎 POST 参数可能包含在实体或标头组中。
但真正的问题是我没有得到任何回调(见下面的代码)。调用后的if
语句client.execute()
永远不会被调用(不触发断点)。
RequestParams params = new RequestParams();
params.put("loginid", "user");
params.put("password", "pass");
params.put("deviceid", "deviceid");
AsyncHttpClient client = new AsyncHttpClient();
client.post(MDSettings.BASE_URL + "/user/login", params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
Log.d(MDSettings.TAG, "MDConnectionManager - login - response: " + response);
singleton.connectionSuccessful(response, returnIndex);
}
@Override
public void onFailure(Throwable error, String content) {
Log.d(MDSettings.TAG, "MDConnectionManager - login - content: " + content);
singleton.connectionFailed("Login Failed", error.getMessage(), returnIndex);
}
});
我正在使用这个库,因为它可以让我将稍后需要的文件发送到这个项目中。如果有另一个库可以做同样的事情(并且确实有效),那对我来说很好。
我的问题是:为什么我没有收到任何回调,我该如何解决这个问题?有不清楚的地方告诉我,我会尝试更深入地解释。