在Rails应用程序上使用HTTPClient维护会话

时间:2010-12-20 16:34:39

标签: java ruby-on-rails applet httpclient

我有一个与Rails应用程序对话的applet。我希望维护用户的会话,以便将applet的通信识别为用户浏览会话的一部分。我使用apache的HTTPClient发送请求,但rails应用程序无法将请求识别为用户会话的一部分。

这是我用来构建请求的代码,我将session_id变量和HTTP_COOKIE变量作为applet参数传递:

        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 :(得分:0)

我用以下代码解决了这个问题:

  

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(会话ID);

     

client.setState(初始化状态);

这两个问题是:

1)不将端口号放在网址中。

2)指定错误的会话ID。在此示例中,应用程序称为chatter,因此session_id为_chatter_session。我将会话ID作为参数添加到applet。