I can't get the HttpParams-stuff from the Android-API working.
I just wan't to send some simple Parameters with my Postrequest. Everything is working fine, except for the parameters. The code to set the parameters to the postrequest:
HttpParams params = new BasicHttpParams();
params.setParameter("password", "secret");
params.setParameter("name", "testuser");
postRequest.setParams(params);
It seems that this code isn't adding any parameter at all, as the server always answer, that my request is missing the "name"-parameter.
An example of what is actually working as expected:
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("name", "testuser"));
postParameters.add(new BasicNameValuePair("password", "secret"));
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
postRequest.setEntity(formEntity);
But I would like to use a version of the first example, as it is easier to read and understand.
Any hint is really appreciated!
Once I had the same issue, and I solved it the same way as you did... I remember I found some topic about why that wasn't working. It was something about Apache's library implementation on the server side.
Unfortunately I can't find that topic now, but if I were you I would just leave it working and wouldn't worry so much about the "elegance" of the code, cause probably there isn't much you can do, and if you can, it's not practical at all.
Tried to get it work the first way, but it seems
HttpParams
interface isn't intended to be built for that. Having Googled for a while, I found this SO answer explaining it:The documentation isn't so specific, though:
For setting connection and request timeouts, I've used a mix of both
HttpParams
andList<NameValuePair>
, which is fully functional and uses theAndroidHttpClient
class, available from API 8:See also: