gpt4 book ai didi

java - Android Webkit CookieManager : How to get all cookies via CookieManager?

转载 作者:行者123 更新时间:2023-12-02 09:34:00 26 4
gpt4 key购买 nike

我正在尝试获取 m.facebook.com 的 cookie通过 CookieManager.getInstance().getCookie() 加载到 android.webkit.WebView 中,但没有给出预期结果

myWebView.loadUrl("http://m.facebook.com");

String cookies = CookieManager.getInstance().getCookie("m.facebook.com");

我想使用 c_user 字段来检查用户是否已登录,以便我可以重定向到自定义 URL。查看http://m.facebook.com的cookie Google Chrome 中显示了许多字段,例如:

c_user
达特尔
FR
随机数
m_像素_比率
某人
西数
x-引用者
xs

Google Chrome with cookies of m.facebook.com

但是getCookie()方法仅返回dnonce

我们将提供帮助。

**场景是我想开发一个具有单个 Web View 的 Android 应用程序。当应用程序启动时,我想检查用户是否使用 Facebook 登录,如果是,则将其重定向到某个URL,否则打开 Facebook 登录页面。为了检查用户是否成功登录,我想出了检查 c_user (唯一用户 ID)cookie 的逻辑,但我无法通过 getCookie 方法获取它。

最佳答案

你可以使用这个来获取cookie值

getCookie("http://www.example.com","cookieName");

将函数声明为

public String getCookie(String siteName,String cookieName){     
String CookieValue = null;

CookieManager cookieManager = CookieManager.getInstance();
String cookies = cookieManager.getCookie(siteName);
String[] temp=cookies.split(";");
for (String ar1 : temp ){
if(ar1.contains(cookieName)){
String[] temp1=ar1.split("=");
CookieValue = temp1[1];
break;
}
}
return CookieValue;
}

对所有 cookie 尝试这个类。 CookieManager 与 java.net

import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.HttpCookie;
import java.util.List;

private class MyCookieManager
{
private CookieManager mCookieManager = null;

MyCookieManager() {
mCookieManager = new CookieManager();
mCookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(mCookieManager);
}

private List<HttpCookie> getCookies() {
if(mCookieManager == null)
return null;
else
return mCookieManager.getCookieStore().getCookies();
}

public void clearCookies() {
if(mCookieManager != null)
mCookieManager.getCookieStore().removeAll();
}

public boolean isCookieManagerEmpty() {
if(mCookieManager == null)
return true;
else
return mCookieManager.getCookieStore().getCookies().isEmpty();
}


public String getCookieValue() {
String cookieValue = new String();

if(!isCookieManagerEmpty()) {
for (HttpCookie eachCookie : getCookies())
cookieValue = cookieValue + String.format("%s=%s; ", eachCookie.getName(), eachCookie.getValue());
}

return cookieValue;
}

}

关于java - Android Webkit CookieManager : How to get all cookies via CookieManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com