【发布时间】:2013-07-04 15:26:12
【问题描述】:
我正在尝试使用 loopj 的 async http library 向服务器发送 POST。以下代码非常标准,但我无法让它工作。
我已经调试了很多,并检查了以下内容:
- 网址正确。
- params 是正确的,它们被正确地存储到 params 变量中。
似乎在AsyncHttpRequest.makeRequest() 中调用HttpResponse response = client.execute(request, context); 时,请求不包含任何参数:
编辑:再查看代码后,似乎 POST 参数可能包含在实体或标头组中。
但真正的问题是我没有收到任何回调(请参阅下面的代码)。 client.execute() 调用之后的 if 语句永远不会被调用(不会触发断点)。
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);
}
});
我使用这个库是因为它可以让我将稍后需要的文件发送到这个项目中。如果有另一个库可以做同样的事情(并且确实有效),那对我来说没问题。
我的问题是:为什么我没有收到任何回调,我该如何解决这个问题?当有不清楚的地方告诉我,我会尝试更深入地解释。
【问题讨论】:
-
是否可以讨论有关此用户/登录文件的一些内容??
-
你想知道什么?我认为您不需要看到任何其他内容,因为我没有看到
Log.d()消息,这意味着没有调用onSuccess()和onFailure()回调。 -
只是因为参数无效而没有生成json响应所以我问你。再次使用您的服务代码 :)
-
没有 JSON,全是 XML,但我不要求任何类型的解析 JSON。我正在寻找纯文本。
标签: android post asynchronous loopj