У меня есть приложение, которое открывает URL-адрес в веб-браузере, пользователь должен затем войти на сайт через веб-просмотр и получать cookie после входа в систему. У меня возникают проблемы с получением файлов cookie после входа в систему.
Проблема в том, что я могу добиться этого с помощью android.webkit.CookieManager и вывести все файлы cookie в одну строку.
Однако я хочу достичь этого, используя хранилище cookie (как в java.net.CookieStore), поэтому мне нужно использовать java.net.CookieManager.
Я использую следующий код внутри onPageFinished() WebViewClient. Я знаю, что проблема заключается в открытии нового соединения, где мне нужно получать контент с текущей страницы. Я был бы признателен за помощь, спасибо
@Override
public void onPageFinished(WebView view, String url){
Log.d(TAG, "Finished loading: " + url);
CookieSyncManager syncManager = CookieSyncManager.createInstance(Main.this);
syncManager.sync();
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(manager);
try {
URL blah = new URL(url);
HttpURLConnection con = (HttpURLConnection) blah.openConnection();
readStream(con.getInputStream()); // outputting html
}
catch (Exception e) {
}
CookieStore cookieJar = manager.getCookieStore();
List<HttpCookie> cookies = cookieJar.getCookies();
for (HttpCookie cookie: cookies) {
Log.d(TAG, "cookie name : "+cookie.getName().toString());
}
}