Setting expires date cookies via CookieManager but webview not apply it

1.1k Views Asked by At

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)
0

There are 0 best solutions below