前提・実現したいこと
djangoサーバーから受け取ったレスポンスにはsesseionidが入っていて、
そのsessionidを次サーバーにアクセスするときにcookieから取り出したいのですが、
あるactivityから呼び出した以下の(プログラムA)で保存できていないようで、
このコードを呼び出したactivityとは別のactivityの上のfragmentから以下のコード(プログラムB)を呼び出しても、
出力が
I/System.out: []
となってしまいます。
どうしたら、cookieにsessionidを保存できるのでしょうか?
それともcookieに保存するのではなく、他に方法があるのでしょうか?
(プログラムA)
msCookieManager.getCookieStore().add(null, HttpCookie.parse(cookie).get(0));
System.out.println(msCookieManager.getCookieStore().getCookies());
<このときの出力>
I/System.out: [sessionid=<ここにそのときのsessionidが出力されます>]
(プログラムB)
CookieManager mCookieManager = new CookieManager();
System.out.println(msCookieManager.getCookieStore().getCookies());
発生している問題・エラーメッセージ
I/System.out: []
該当のソースコード
Java
1 final String COOKIES_HEADER = "Set-Cookie"; 2 3 Map<String, List<String>> headerFields = urlConnection.getHeaderFields(); 4 List<String> cookiesHeader = headerFields.get(COOKIES_HEADER); 5 6 CookieManager msCookieManager = new CookieManager(); 7 8 9 System.out.println(cookiesHeader); 10 11 System.out.println(headerFields); 12 if (cookiesHeader != null) { 13 for (String cookie : cookiesHeader) { 14 15 msCookieManager.getCookieStore().add(null, HttpCookie.parse(cookie).get(0)); 16 //ここでしっかりパースできておらず、sessionidのみがCookieStoreに保存されています。 17 18 } 19 } 20 21 System.out.println(msCookieManager.getCookieStore().getCookies()); 22 //ここでの出力はI/System.out: [sessionid=そのときのsessionid] となります 23
Java
1 2CookieManager msCookieManager = new CookieManager(); 3 4 5 6System.out.println(msCookieManager.getCookieStore().getCookies()); 7//ここでの出力はI/System.out: [] となります。 8
あなたの回答
tips
プレビュー