Я отправляю запрос на URL веб-страницы веб-сайта, используя OkHttpClient и сохраняю повар ie, который он дает следующим способом, который я получил только из stackoverflow.
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
ClearableCookieJar cookieJar = new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(this));
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(cookieJar)
.build();
Request request = new Request.Builder()
.url("www.example.com/homePage")
.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0")
.build();
Необходимо хранить повара ie, в противном случае веб-сайт перенаправляет запрос на страницу тайм-аута.
Затем я вижу html страницы, чтобы проверить, достиг ли я правильного URL.
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
textView.setText("Failed to get response");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if(response.isSuccessful()){
//String myResponse contains the html of the webpage
final String myResponse = response.body().string();
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(myResponse);
}
});
}
}
});
Теперь я создаю другую переменную Request аналогично URL "www.example.com/loginPage" и пытаюсь увидеть html, но это перенаправляет меня на страницу тайм-аута, потому что запрос сделан без отправки повара ie, который я получил от homePage.
Итак, вкратце, как я могу получить повара ie из "www.example.com/cookieProviderPage" и сохранить его, а затем использовать этот повар ie для всех дальнейших запросов ко всем страницам этого веб-сайта. Страницы этого веб-сайта имеют разные URL-адреса, такие как "www.example.com/cookieRequiredPage1", "www.example.com/cookieRequiredPage2" и т. Д. c.
PS. Я проверил много вопросов о стековом потоке, связанных с файлами cookie, но не могу их реализовать специально в моем случае.