Android Http получить Session Cookie - PullRequest
       7

Android Http получить Session Cookie

9 голосов
/ 04 октября 2010

Я не очень хотел публиковать здесь, потому что в сети так много информации, но я перебрал всю глубину и не могу понять.

Хорошо, я не могу получитьэто работает в двух сценариях, надеюсь, ответ для обоих одинаков.

Моя проблема в том, что я установил заголовок запроса, но он, похоже, не отправляет его.

У меня есть идентификатор сеансаs = e32ff223fwefd3, и я хочу сохранить это в «Cookie», но, похоже, он не работает.

Вот самый быстрый пример кода, который у меня есть

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.HttpResponse;

private static String sessionCookie = "s=12342342352354234";

public static void get(String url) {
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet(url);
        if(sessionCookie != null){
            Log.d(TAG, "Setting Cookie: "+sessionCookie);
            request.setHeader("Cookie", sessionCookie);
        } else {
            Log.i(TAG, "Null session request get()");
        }
        HttpResponse response = client.execute(request);

        Header[] headers = response.getAllHeaders();
        for (int i=0; i < headers.length; i++) {
            Header h = headers[i];
            Log.i(TAG, "Header names: "+h.getName());
            Log.i(TAG, "Header Value: "+h.getValue());
        }
}

Итак, когдамой ответ выходит с другой стороны, к нему не прикреплен мой s = 232342w3f23f id!

Я думаю, что я все правильно объяснил, любая помощь приветствуется

Ответы [ 2 ]

5 голосов
/ 05 октября 2010

Хорошо, приведенный выше код действительно работает, я просто неправильно извлек заголовок, чтобы увидеть все поля. Проблема заключалась в том, что у меня был неверный идентификатор сеанса, но веб-сервер, который я использовал, имел НАИБОЛЬШИЕ механизмы обработки ошибок :-) спасибо за прослушивание!

4 голосов
/ 05 октября 2010

Попробуйте getCookieStore().addCookie() на вашем DefaultHttpClient объекте, перед отправкой запроса.

...