我試圖使用loopj的async http library發送POST到服務器。下面的代碼是非常標準的,但我無法讓它工作。AsyncHttpRequest POST不觸發回調(android-async-http by loopj)
我已經調試了不少,並已檢查以下內容:
- 的URL是正確的。
- 參數是正確的,它們被正確存儲到params變量中。
看來,當HttpResponse response = client.execute(request, context);
被稱爲AsyncHttpRequest.makeRequest()
請求不包含任何PARAMS:
編輯:看多一點似乎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);
}
});
我使用這個lib,因爲它讓我發送稍後需要的文件到這個項目中。如果有另一個lib執行相同的事情(並且實際上可以工作),那對我來說就沒問題。
我的問題是:爲什麼我沒有得到任何回調,我該如何解決這個問題?告訴我何時不清楚,我會試着更深入地解釋。
是否可以討論一些關於此用戶/登錄文件? –
你想知道什麼?我不認爲你需要看到其他任何東西,因爲我沒有看到'Log.d()'消息,這意味着'onSuccess()'和'onFailure()'回調沒有被調用。 – Manuel
只是因爲一些時間JSON響應沒有生成,因爲無效的參數,所以我問你。只需再次與您的服務代碼槽 –