2016-12-05 6 views
6

साथ वेबव्यू से कुकीज़ जाओ मैं वर्तमान में वेब दृश्य जो() onPageFinishedपथ और समाप्ति तिथि

mWebview = (WebView) this.findViewById(R.id.myWebView); 

    mWebview.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      String cookies = CookieManager.getInstance().getCookie(url); 
      Log.d("Cookie", cookies); 
     } 
    }); 

    mWebview.loadUrl("http://www.google.com"); 

CookieManager.getCookie में कुकीज़ मिल ही कुकी के नाम और मान के जोड़े रिटर्न दिया है।

अब मैं इस तरह के पथ और समाप्ति तिथि ect के रूप में है कि कुकी के बारे में अधिक जानकारियां प्राप्त करना चाहते हैं ...

मैं कुकीज़ के सभी "कच्चे डेटा" निकाल सकते हैं कि कैसे के किसी भी विचार?

उत्तर

2

आप पहुँच प्रतिक्रिया हेडर (कुकीज़ http हेडर के रूप में भेजा जाता है) के लिए आदेश में WebView के संसाधन लोड हो रहा है ओवरराइड करने के लिए की जरूरत है। Android के संस्करण के आधार पर आप समर्थन कर रहे हैं आप WebViewClient के निम्नलिखित दो तरीकों ओवरराइड करने के लिए की जरूरत है: (एक नई बनाकर

mWebview.setWebViewClient(new WebViewClient() { 

      @Override 
      public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { 
       if (request != null && request.getUrl() != null && request.getMethod().equalsIgnoreCase("get")) { 
        String scheme = request.getUrl().getScheme().trim(); 
        if (scheme.equalsIgnoreCase("http") || scheme.equalsIgnoreCase("https")) { 
         return executeRequest(request.getUrl().toString()); 
        } 
       } 
       return null; 
      } 

      @Override 
      public WebResourceResponse shouldInterceptRequest(WebView view, String url) { 
       if (url != null) { 
        return executeRequest(url); 
       } 
       return null; 
      } 
     }); 

फिर आप यूआरएल खुद की सामग्री को पुनः प्राप्त और WebView है कि दे सकता है WebResourceResponse) या अशक्त लौट सकते हैं और WebView संभाल यह (ध्यान में रखना है कि इस नेटवर्क के लिए एक और फोन करना है!)

private WebResourceResponse executeRequest(String url) { 
     try { 
      URLConnection connection = new URL(url).openConnection(); 
      String cookie = connection.getHeaderField("Set-Cookie"); 
      if(cookie != null) { 
       Log.d("Cookie", cookie); 
      } 
      return null; 
      //return new WebResourceResponse(connection.getContentType(), connection.getHeaderField("encoding"), connection.getInputStream()); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
-1

इस प्रयास करें:

String[] x = Pattern.compile(";").split(CookieManager.getInstance().getCookie()); 

https://stackoverflow.com/a/5840990/6371926

+0

यह केवल परमिट पार्स करने के लिए getCookie द्वारा स्ट्रिंग वापसी जो केवल का नाम और मान के जोड़े रिटर्न कुकीज़। मैं उन सभी सूचनाओं की तलाश में हूं: https://developer.chrome.com/extensions/cookies#method-getAll – Lucas78

संबंधित मुद्दे