Поддержка сеанса с использованием HTTPClient в приложении Rails - PullRequest
0 голосов
/ 20 декабря 2010

У меня есть апплет, который общается с Rails-приложением. Я хочу сохранить сеанс пользователя, чтобы связь апплета распознавалась как часть сеанса просмотра пользователя. Я использую HTTPClient apache для отправки запроса, но приложение rails не распознает запрос как часть сеанса пользователя.

Это код, который я использую для построения запроса, я передаю переменную session_id и переменную HTTP_COOKIE в качестве параметров апплета:

        HttpClient client = new HttpClient();
        Cookie httpCookie = new Cookie("localhost", "HTTP_COOKIE", http_cookie, "/", null, false);
        Cookie sessionID = new Cookie("localhost", "session_id", session_id, "/", null, false);

        HttpState initialState = new HttpState();
        initialState.addCookie(httpCookie);
        initialState.addCookie(sessionID);
        client.setState(initialState);

        PostMethod post = new PostMethod("http://localhost:3001/vizs/add");

Любые предложения будут великолепны!

slothishtype

1 Ответ

0 голосов
/ 28 апреля 2011

Я решил это с помощью следующего кода:

String session_id_str = "6a7eec105k231g51bjd0655e638034f3";

Cookie sessionID = new Cookie ("127.0.0.1:3001", "_chatter_session", session_id_str, "/", null, false);

HttpState initialState = new HttpState ();

initialState.addCookie (sessionID);

client.setState (initialState);

Были две проблемы:

1) Не указывать номер порта в URL.

2) Указание неверного идентификатора сеанса.В этом примере приложение называется chatter, поэтому session_id - _chatter_session.Я добавляю идентификатор сессии в апплет в качестве параметра.

...