2014-01-10 77 views
0

我幾乎已經死了,需要幫助。webview和java之間的同步cookie

我的要求: -

我正在開發Android應用程序,並希望使用從web視圖餅乾(/會話)在我的Java代碼。我基本上想在webview中登錄後得到其他頁面的html,而不是在webview中打開這些頁面,而是通過我的java代碼。

我試過: -

爲此,我試過HttpClientHttpURLConnection指SO許多問題,但失敗了。

任何人都可以請給我一個示例代碼?

說我有一個哈希曲奇餅乾餅乾。我如何使用HttpClientHttpURLConnection或其他任何東西來獲得其他頁面html。該網站我,試圖爲https:

請給一個示例代碼

+0

你是否能夠在WebView中通過JavaScript使用session-id讀取Cookie?默認情況下,這些會話Cookie在創建服務器端時被標記爲「HttpOnly」,因此應該無法通過腳本獲取值。嘗試在WebView中執行'console.log(document.cookie)'並觀看LogCat。你能看到SessionId嗎? – hgoebl

+0

@hgoebl我們也可以通過CookieManager.getInstance()。getCookie(「url」) – user

+0

獲得httponly cookie所以問題在哪裏?採取cookie和[設置標題](http://en.wikipedia.org/wiki/HTTP_cookie#Setting_a_cookie)。 – hgoebl

回答

2

是試試這個:

BufferedReader reader = null; 
try { 
    URL url2 = new URL("url"); 
    URLConnection con = (URLConnection) url2.openConnection(); 
    CookieManager.getInstance().setAcceptCookie(true); 

    con.setRequestProperty("Cookie",CookieManager.getInstance().getCookie("logged in url in webview")); 
    con.setDoOutput(true); 
    con.connect(); 

    reader = new BufferedReader(new InputStreamReader(con.getInputStream())); 
    StringBiffer html; 
    String line = ""; 
    while ((line = reader.readLine()) != null) { 
     html.append(line); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

它爲我工作。

+0

偉大的工作... – user

1

您是否嘗試過的餅乾添加爲HTTP標頭?我不知道我是否理解你,但你可以考慮這些:

  • Cookies:如果你想加載一些資源(無論是網頁,圖像,CSS,JS或其他)您正在發出HTTP請求。如果服務器爲您的用戶保留一個會話,您可能會得到一個會話cookie。 cookie必須隨每個請求一起發送到服務器,作爲COOKIE頭。因此,如果您想將cookie傳遞給您的請求,請將其添加爲標題。 Android爲您提供了一個使用CookieManager類的簡單方法。你可以參考this
  • SSL:如果您嘗試訪問安全網站(https),則必須使用SSL證書。 Android爲大多數受歡迎的網站(例如Facebook,Google,Twitter等)提供了大量預分配證書。你可以直接使用它們。如果您的SSL證書沒有出現,您必須手動添加它。請閱讀this瞭解更多信息。

我希望如果我是對你企圖使用您的WebView cookies來獲取網站的其他頁面中的活動的Java code.if這是有用的:)

相關問題