こんにちは、セッション処理用の 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 呼び出しで使用すると、「セッションが終了しません」というセッションの問題が発生します。
ありがとうございました。