1

嗨,我正在开发 android 应用程序,我想在其中设置 cookie 以进行会话处理。我正在使用 datadroid 库进行HttpURLConnection在后台使用的网络调用。登录过程后,我尝试设置 cookie,之后每次通话我都尝试传递 cookie。但它没有给我有效的会话。我通过以下方式做到了这一点。登录过程后:

header = result.headerMap //this gves me header part after log in responce.

所以这个头变量看起来像

{Cache-Control=[no-store, no-cache, must-revalidate, post-check=0, pre-check=0], 
***Connection=[close]***, Content-Encoding=[gzip], Content-Length=[173], Content-Location=
[login.php], Content-Type=[application/json], Date=[Wed, 20 Mar 2013 04:05:38 GMT], 
Expires=[Thu, 19 Nov 1981 08:52:00 GMT], Pragma=[no-cache], Server=[Apache/2.2.22 
(Fedora)],
 ***Set-Cookie***=[QCSESSID=mckdk1povn625jk1bhs11m0t97; path=/, 
QCSESSID=d44cnlf6gv2ii8lt76tr7vbqm4; path=/], TCN=[choice], Vary=[negotiate,Accept-
Encoding,User-Agent]}

所以对于我的下一个网络电话我使用Set-Cookies part

    connect_status= header.get("Connection");
    login_cookie= header.get("Set-Cookie");
    cookie1=login_cookie.get(0);
    cookie2=login_cookie.get(1);

// This is datadroid syntax. So here I m setting cookies for my next call
 login_header.put("User-Agent"," Apache-HttpClient/4.2.3 (java 1.5)");
   login_header.put("Connection" ,"Keep-Alive");
   login_header.put("Cookie", cookie2);

   networkConnection.setHeaderList(login_header);

但它仍然给我错误,没有有效的会话退出。我的标头响应显示连接参数已关闭,因此我尝试使用连接“保持活动状态”但这也不起作用。难道我做错了什么?需要帮忙。如何解决这个问题呢。

如果我用我的 GET API 之一尝试它,它的工作正常。但是当我将它与我的 PUT API 调用一起使用时,它会给我带来会话问题“会话不退出”。

谢谢你。

4

0 回答 0