2010-12-20 61 views
0

我有一个与Rails应用程序交谈的小程序。我希望维护一个用户会话,以便该applet的通信被识别为用户浏览会话的一部分。我使用apache的HTTPClient发送请求,但rails应用程序不会将该请求识别为用户会话的一部分。在Rails应用程序上使用HTTPClient维护会话

这是我用来建立请求的代码,我通过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

回答

0

我解决了这个用下面的代码:

字符串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)指定错误的会话ID。在这个例子中,应用程序被称为chatter,所以session_id是_chatter_session。我将该会话ID作为参数添加到小程序中。