首页 > 解决方案 > 在 WebView 和 HTTP 请求之间共享 cookie

问题描述

我正在尝试在应用程序和WebView之间共享 cookie 。特别是,在 HTTP 请求之后,从响应中检索到的 cookie 需要注入到 Web 视图中。

我做了一个实验,以了解默认情况下是否共享 cookie,但似乎并非如此。实际上,先执行 HTTP 请求(C),然后检索 cookie (B),结果为空。相反,如果首先加载 url (A)并在之后检索 cookie (B),我会看到正确的结果。

// (A) Load web page
Button loadButton = findViewById(R.id.button);
loadButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        myWebView.loadUrl("https://www.google.it");
    }
});

// (B) Retrieve cookies for a specific url
Button showCookieButton = findViewById(R.id.button2);
showCookieButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        CookieManager cm = CookieManager.getInstance();
        String cookies = cm.getCookie("https://www.google.it");
        // print cookies here
    }
});

// (C) Simulate a fake request through Volley
Button makeRequestButton = findViewById(R.id.button4);
    makeRequestButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Instantiate the RequestQueue.
            RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
            String url ="https://www.google.it";

            // Request a string response from the provided URL.
            StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    
                }
            });

            // Add the request to the RequestQueue.
            queue.add(stringRequest);
        }
    });
}

基于此,我可以说这CookieManager只是相对于WebView一般的 HTTP 请求而不是相对于 HTTP 请求。

因此,我的问题:

标签: androidcookieswebviewsynchronization

解决方案


推荐阅读