android, как отправить имя пользователя и пароль в веб-службу в виде полей заголовка?

Я пытаюсь создать приложение на телефоне Android, которое берет имя пользователя и пароль от пользователя, шифрует пароль с помощью md5, а затем подключается к URL-адресу с этими параметрами.

код для подключения отлично работал на iphone, но я не смог найти что-то подобное в android:

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:myURL];

[request setHTTPMethod:@"GET"];

[request addValue:usernameField.text forHTTPHeaderField:@"UserName"];

[request addValue:MD5Pass2 forHTTPHeaderField:@"Password"];

Я пытался подключиться через httpurlconnection, используя post/get Dataoutputstream, httpclient отправляет параметры httpget/httppost, но безуспешно.

Я думаю, мне нужно отправить параметры как поле заголовка, но я не знаю, как это сделать.

примечание: я сравнил результаты шифрования, и они оказались правильными.


person user173488    schedule 08.03.2012    source источник


Ответы (2)


Я считаю, что библиотека Apache гораздо проще, когда дело доходит до HTTP.

Примером этого может быть следующее:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://www.internet.com/api"));

Обычно с запросом GET вы должны использовать параметры GET, то есть добавлять их в конец URL-адреса следующим образом:

String url = "http://www.internet.com/api?UserName=YourUsername&Password=yourpassword" 
request.setURI(new URI(url));

Но поскольку вы указали, что хотите использовать их в качестве заголовков, вы можете:

request.addHeader("UserName", username);
request.addHeader("Password", password);

а потом:

HttpResponse response = client.execute(request);
//Parse the response from the input stream object inside the HttpResponse
person Matthew Patience    schedule 08.03.2012
comment
спасибо, ваш ответ ясен и исчерпывающий, я попробовал, и хотя я думал, что это сработает (теоретически должно), но это не сработало, я все еще получаю тот же результат, вход в систему не выполнен! - person user173488; 09.03.2012
comment
наконец-то я нашел ошибку, они дали мне неправильное имя пользователя! теперь работает, спасибо. - person user173488; 09.03.2012

вы можете попробовать использовать HttpUrlConnection с этим http://developer.android.com/reference/java/net/URLConnection.html#addRequestProperty%28java.lang.String,%20java.lang.String%29

person Luca    schedule 08.03.2012
comment
спасибо за ответ, я попробовал ваше решение, но оно дает тот же результат, что и раньше! авторизация не удалась, хотя я уверен, что параметры верны! - person user173488; 09.03.2012
comment
теперь работает нормально, после исправления данных, спасибо. - person user173488; 09.03.2012