0

WebView を介してサイトにログインしています。次に、ログイン時にWebビューによって設定されたCookieを取得しました。それから私は後でクッキーを設定しようとしました。私のコードを見てください:

CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();

Log.e("checkPost 1", cookie);
cookieManager.setCookie("https://************", cookie);

Log.e("checkPost 2", cookieManager.getCookie("https://*************"));
CookieSyncManager.getInstance().sync();
Log.e("checkPost 3", cookieManager.getCookie("https://*************"));

checkPost 1印刷されたクッキーでは、それが問題ないことを示しています。しかし、それcheckPost 2以降のステートメントでは、Cookie のほとんどが消失していることを示しています。何が問題ですか ?私はクッキーを設定する必要があります。しかし、私は約2日を費やす方法を見つけることができませんでした.sync()CookieSyncManager.getInstance().sync();checkPost 3

編集:

Androidのドキュメントでは、次のように述べています。

public void setCookie (文字列 URL、文字列値)

指定された URL の Cookie を設定します。同じホスト、パス、および名前を持つ既存の Cookie はすべて、新しい Cookie に置き換えられます。設定されている Cookie は期限切れであってはならず、セッション Cookie であってはなりません。それ以外の場合は無視されます。

経由で強制的CookieManagerにセッション Cookie を設定する方法はありますsetCookie()か? 問題は、設定しようとしているのかもしれませんsession cookie

4

1 に答える 1

0

私の質問に対する答えがあるかどうかはわかりません。しかし、私の目的のために、別の方法で問題を解決しました。それは長いプロセスですが、うまくいきます。session cookie私は保存するという考えをあきらめましたCookieManager(これは Android Developer サイトのドキュメントでは不可能です)。だから、私がやったことは次のとおりです。セッションCookieを文字列に変換し、メモリに保存しました。後で使用するために、メモリから文字列を取得し、それをセッション cookie に変換します。

編集:

(否定的な有権者の場合) 回答の中で、4 ~ 5 クラスのようにプロセスが長すぎることを伝えました。このプロジェクトは Android での私の最初のプロジェクトだったので、コードが面倒です。すべてのクラスがあまりにも多くのコードでいっぱいです。なのでここに掲載することは不可能です。私が使用したプロセスを説明しました。では、なぜ反対票を投じたのでしょうか。

私は独自の方法でセッションを変換し、逆の方法で文字列をセッションに構築しました。

何か方法があれば、答えを投稿します。クラスとアルゴリズムを構築するのに約 15~20 日かかります。ですから、Google を使ってより良い方法を見つけるか、単純に独自のアルゴリズムと私のようなプロセスを構築してみませんか。ここで重要な部分を説明しましたが、それをコードに実装する方法を見つける必要があるだけです。ありがとう

于 2013-04-07T21:55:53.610 に答える