Не удается разрешить метод setCookieHandler (java.net.CookieManger

Я использую CookieManger с okHttp, и я не знаю, почему он говорит:

Не удается разрешить setCookieMethod. Я погуглил его допустимый метод, а CookieManger и OkHttp импортированы в проект.

OkHttpClient client = new OkHttpClient();
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);        
client.setCookieHandler(cookieManager);

person Skyyy    schedule 11.02.2016    source источник
comment
Попробуйте установить CookieHandler.setDefault(cookieManager); после инициализации cookieManager.   -  person haihui    schedule 11.02.2016
comment
Это сообщение выдается вашей IDE. Возможно, вы являетесь пользователем более старой версии библиотеки, в которой нет метода   -  person Balaji Katika    schedule 11.02.2016


Ответы (1)


OkHttp имеет новый интерфейс CookieJar!

OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.cookieJar(cookieJar);
OkHttpClient client = builder.build();

где cookieJar является экземпляром okhttp3.CookieJar.

Если вам действительно нравится java.net.CookieManager, вы можете использовать JavaNetCookieJar Джесси: https://github.com/square/okhttp/blob/master/okhttp-urlconnection/src/main/java/okhttp3/JavaNetCookieJar.java

CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieJar cookieJar = new JavaNetCookieJar(cookieManager);
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.cookieJar(cookieJar);
OkHttpClient client = builder.build();
person Eric Cochran    schedule 11.02.2016
comment
Для зависимостей gradle можно добавить следующее: compile 'com.squareup.okhttp3:okhttp:3.1.2' и compile 'com.squareup.okhttp3:okhttp-urlconnection:3.1.2' - person Moony Chou; 25.02.2016
comment
@MoonyChou Да, или вы можете удалить зависимость от URL-адреса и просто скопировать и вставить только JavaNetCookieJar, если это все, что вам нужно. - person Eric Cochran; 25.02.2016