在webview和java之间同步cookie

时间:2014-01-10 13:58:56

标签: android cookies httpclient httpurlconnection

我几乎要死了。需要帮助。

我的要求: -

我正在开发一个Android应用程序,并希望在我的java 代码中使用webview中的cookie(/ session)。我基本上想在webview中登录之后获取网址其他页面的 html,而无需在webview中打开这些页面,而是通过我的java代码。

我尝试了什么: -

为此,我尝试了HttpClientHttpURLConnection提到了许多SO问题但却失败了。

有人可以给我一个示例代码吗?

说我在hashmap cookies中有cookie。如何使用HttpClientHttpURLConnection或其他任何内容来获取其他页面html。我正在尝试使用的网站是 https:

请提供示例代码

2 个答案:

答案 0 :(得分:2)

如果我是对的,你正试图使用​​你的webview的cookie来获取你的活动java代码中的其他网站页面。如果是这样的话:

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();
}  

它对我有用。

答案 1 :(得分:1)

您是否尝试将Cookie添加为HTTP标头?我不确定我是否理解你,但你可以考虑这些:

  • Cookie:如果您要加载某些资源(无论是网页,图片,css,js还是其他内容),您都会发出HTTP请求。如果服务器为您的用户保留会话,则可能会给您一个会话cookie。必须将cookie作为e COOKIE标头随每个请求一起发送到服务器。因此,如果您想将cookie传递给您的请求,请将其添加为标题。 Android为您提供了使用CookieManager类轻松完成此操作的方法。您可以参考this
  • SSL:如果您尝试访问安全网站(https),则必须使用SSL证书。 Android为大多数流行的网络引用(例如Facebook,Google,Twitter等)提供了大量预先分发的证书。您可以开箱即用。如果未显示您的SSL证书,则必须手动添加。请阅读this以获取更多信息。

我希望这很有用:)