I'm Shendi.
最近写的 App 使用了 WebView, 因为网站需要登录,需求是用当前app账号去进行登录,避免每次手动登录.
对于这种功能使用 sessionId 验证的话很简单,直接后台进行登录取得 sessionId 然后给WebView设置
代码如下
// 获取到 sessionId
HttpURLConnection u = null;
String sessionId = null;
try {
// 这里 URL 里的为登录的链接.
u = (HttpURLConnection) new URL("").openConnection();
u.setDoInput(true);
u.setRequestMethod("POST");
u.getInputStream();
// 这里获取登陆后的 sessionId
sessionId = u.getHeaderField("set-cookie");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (u != null) u.disconnect();
}
// 设置 Cookie
CookieSyncManager.createInstance(MainActivity.getContext());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
// 这里设置的是 某个 url 的 cookie, cookie 为sessionId
cookieManager.setCookie(url,sessionId);
CookieSyncManager.getInstance().sync();