2010-12-20 60 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作爲參數添加到小程序中。