Sto provando a inviare un POST a un server utilizzando il loopj async http library. Il seguente codice è piuttosto standard ma non riesco a farlo funzionare.AsyncHttpRequest POST che non attiva i callback (android-async-http di loopj)
ho debug un po 'e controllare la seguente:
- L'URL è corretto.
- I parametri sono corretti e sono memorizzati correttamente nella variabile params.
Sembra che quando HttpResponse response = client.execute(request, context);
è chiamato in AsyncHttpRequest.makeRequest()
la richiesta non contiene alcun params:
EDIT: Dopo aver guardato il codice un po 'di più a quanto pare potrebbe essere inclusi nel params POST entità o gruppo di testa.
Ma il vero problema è che non ho ricevuto nessuno dei callback (vedi codice qui sotto). L'istruzione if
dopo la chiamata client.execute()
non viene mai chiamata (il punto di interruzione non viene attivato).
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);
}
});
Sto usando questa libreria perché mi consente di inviare file di cui ho bisogno in seguito in questo progetto. Se c'è un'altra lib che fa la stessa cosa (e in effetti funziona), per me andrebbe bene.
La mia domanda è: perché non ricevo alcun callback e come posso risolvere questo problema? Dimmi quando qualcosa non è chiaro e cercherò di spiegarlo in modo più approfondito.
è possibile discutere alcuni riguardo questo file utente/login ?? –
Cosa vuoi sapere? Non penso che sia necessario vedere altro, poiché non vedo il messaggio 'Log.d()' che significa che i callback 'onSuccess()' e 'onFailure()' non vengono chiamati. – Manuel
solo perché qualche tempo non è stata generata una risposta json a causa di parametri non validi, quindi vi chiedo. basta andare avanti con il codice di servizio ancora una volta :) –