I'm trying to send a POST to a server using loopj's async http library. The following code is pretty standard but I can't get it to work.
I have debugged quite a bit and have checked the following:
It appears that when HttpResponse response = client.execute(request, context);
is called in AsyncHttpRequest.makeRequest()
the request doesn't contain any params:
EDIT : After looking at the code a little more it seems the POST params might be included in the entity or headergroup.
But the real problem is that I don't get any of the callbacks (see code below). The if
statement after the client.execute()
call never gets called (the breakpoint isn't triggered).
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);
}
});
I'm using this lib because it lets me send files which I'll need later into this project. If there is another lib that does the same thing (and actually works) that'd be fine with me.
My question is: Why don't I get any callbacks and how can I fix this? Tell me when something isn't clear and I'll try to explain in more depth.
It seems my android.permission.INTERNET
entry was removed from the manifest file. After adding it again everything worked as expected. Every time something doesn't work I'll be checking my permissions.
Try this simple snippet.
This works on my device.
It prints "Failure" as POST is not allowed (HTTP status: 405)
AsyncHttpClient client = new AsyncHttpClient();
RequestParams params = new RequestParams();
params.put("q", "google");
client.post("http://google.com", params, new AsyncHttpResponseHandler(){
public void onSuccess(String arg0) {
Log.d("TAG", "Success");
};
public void onFailure(Throwable arg0, String arg1) {
Log.d("TAG", "Failure");
};
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With