こんばんは。堀内といいます。
WebViewでサーバと通信した際に作成したCookieを、HttpClientでの通信でも使用したいと考えています。
WebViewからCookieを取得するのはできたのですが、HttpClientに設定する部分がうまくいってないようです。
サンプルを探せなくて、関数の整合性だけでソース書きました。
しかも、JavaでCookie使うの初めてなので、とんでもない勘違いしている可能性ありです。
書くのだけでいっぱいいっぱいで、どこが変なのかさっぱり状態なので、ご協力お願いします。
1.WebViewのCookieの値を取得
----------
CookieManager cookie = CookieManager.getInstance();
String cookiestr = cookie.getCookie(url);
----------
cookiestrは"hoge=xxxxxxxxxx; hoge=xxxxxxxxxx;"のような感じです
PHPでsetcookie("hoge"、 "xxxxxxxxxx");した値がちゃんと入ってるので正しいはず
2.HttpClientにCookieの値を設定
Cookieの値はHashMap<String, String>に格納済みで
BasicClientCookieにHashMapの値を入れてます
----------
URI uri = new URI(path);
DefaultHttpClient client = new DefaultHttpClient();
client.getParams().setParameter("http.connection.timeout", new Integer(15000));
// Cookieの設定
if (cookie != null) {
CookieStore store = client.getCookieStore();
Iterator<String> ite = cookie.keySet().iterator();
while (ite.hasNext()) {
String key = ite.next();
store.addCookie(new BasicClientCookie(key, cookie.get(key)));
}
}
<中略>
// HTTP接続
HttpResponse response = client.execute(method);
int status = response.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
// 失敗
return null;
}
// レスポンスデータ取得
return response.getEntity().getContent();
----------
3.HttpClientの通信先でCookieの値を取得
2で設定したCookieの値がほしいけど取れない
気づいたことありましたら、ご教授ください。
よろしくお願いします。