1

こんにちは、セッション処理用の Cookie を設定したい Android アプリケーションを開発しています。バックグラウンドで使用するネットワーク呼び出しに datadroid ライブラリを使用HttpURLConnectionしています。ログインプロセスの後、私はクッキーを設定しようとしました。その後、すべての呼び出しでクッキーを渡そうとしました。しかし、それは私に有効なセッションを与えません。私はこれを次の方法で行いました。ログインプロセス後:

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]}

私が使用している次のWeb通話のSOSet-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 呼び出しの 1 つで試してみると、正常に動作しました。しかし、PUT API 呼び出しで使用すると、「セッションが終了しません」というセッションの問題が発生します。

ありがとうございました。

4

0 に答える 0