作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取 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/
我是一名优秀的程序员,十分优秀!