I have a problem. I'm sending request for getting cookies from url. This url has link which return image. But cookies return expire date time for not to showing image some time. I'm applying this cookies to CookieManager and after I'm loading this url on webview, But webview show this image all the time.
Creating OkhhtpClient and caching CookieJar
val httpClient: OkHttpClient = OkHttpClient.Builder()
.cookieJar(object : CookieJar {
override fun loadForRequest(url: HttpUrl): List<Cookie> {
return emptyList()
}
@Override
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
Log.e(TAG, cookies.toString())
CookieManager.getInstance().removeAllCookies(null)
CookieManager.getInstance().flush()
//setting special date for not to show image in webview
CookieManager.getInstance().setCookie(banner,
"expires=Mon, 31 Jan 2023 23:06:37 GMT")
}
}).build()
The main request for Okhttpclient and after response setting loadurl for webview.
httpClient.newCall(okhttp3.Request.Builder().url(banner).get().build()).enqueue(object: Callback{
override fun onFailure(call: Call, exception: IOException) {
//onFailure(exception)
}
override fun onResponse(call: Call, response: Response) {
CookieManager.getInstance().getCookie(banner)
//here I'm getting correct cookies for check "expires=Mon, 31 Jan 2023 23:06:37 GMT"
val cookieManager = CookieManager.getInstance()
cookieManager.acceptCookie()
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
holder.webView.post {
cookieManager.setAcceptThirdPartyCookies(holder.adsWebView, true)
holder.webView.settings.javaScriptEnabled = true
holder.webView.loadUrl(banner)
}
}
})
I have checked, the cookies expiration date is correct. CookieManager return expires=Mon, 31 Jan 2023 23:06:37 GMT But the image shows up every time. What I'm doing wrong? .getCookies return correct expire date and cookieManager has this date before loadurl.
This all code I'm calling in postDelayed
webView.postDelayed({
val httpClient:.....
.....
httpClient.newCall.....
.....
}, 10)