"okhttp"で助けが必要です。私は、後でアプリでそれを再利用するという私の要求から得たクッキーを保存したい。私はこの例に遭遇しましたが、問題は私がどのパッケージにPreferences
クラスがあるか分かりません。どうすればインポートできますか?オートコンプリートを使用している場合はimport java.util.prefs.Preferences;
を使用できます。しかし、それはアンドロイドではありません。それはgetDefaultPreferences()
メソッドを含んでいません。以下のリンクのコードを参照してください。 AddCookiesInterceptor.java
でライン12上のOkHttp/Retrofitでクッキーを扱う - シンボル 'Preferences'を解決できません
:
HashSet<String> preferences = (HashSet) Preferences
.getDefaultPreferences()
.getStringSet(Preferences.PREF_COOKIES, new HashSet<>());
http://tsuharesu.com/handling-cookies-with-okhttp/
/**
* This interceptor put all the Cookies in Preferences in the Request.
* Your implementation on how to get the Preferences MAY VARY.
* <p>
* Created by tsuharesu on 4/1/15.
*/
public class AddCookiesInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
HashSet<String> preferences = (HashSet) Preferences.getDefaultPreferences().getStringSet(Preferences.PREF_COOKIES, new HashSet<>());
for (String cookie : preferences) {
builder.addHeader("Cookie", cookie);
Log.v("OkHttp", "Adding Header: " + cookie); // This is done so I know which headers are being added; this interceptor is used after the normal logging of OkHttp
}
return chain.proceed(builder.build());
}
}
私の推測では、2つのタイプミスがあります。 'Preferences' - >' PreferenceManager'、 'getSharedPreferences()' - > 'getDefaultSharedPreferences()'のようなものです。 – CommonsWare
@CommonsWare Preferencesは入力ミスではなく、コードをコピーして動作することが期待されています.-そこに書かれていても、どのように設定が変わるかは異なります。 – Tsuharesu