我需要使用凭据在https页面登录。但我的问题是,我无法从最初request.i使用webview.Bascically获取cookie首先需要得到来自http请求的cookie,然后用该cookie和用户凭证发送https请求。android webview获取初始cooke
以下是我的onCreate()方法
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
if (cookie != null) {
cookieManager.removeSessionCookie();
String cookieString = cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain() ;
cookieManager.setCookie(cookie.getDomain(), cookieString);
CookieSyncManager.getInstance().sync();
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("www.xyz.com");
webView.setWebViewClient(new MyWebViewClient());
和MyWebViewClient
private class MyWebViewClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public void onPageFinished(WebView view, String url) {
CookieSyncManager.getInstance().sync();
};
return null;
}
我打电话HTTPS通过这种方式
HttpClient hc;
HttpGet get = null;
HttpResponse httpResponseData = null;
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);
final List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
nvps.add(new BasicNameValuePair("id", id));
nvps.add(new BasicNameValuePair("pass", pass));
hc = new DefaultHttpClient(httpParameters);
String URL = "https://xyz.com";
final UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8);
URL += p_entity;
get = new HttpGet(URL);
httpResponseData = hc.execute(get);
if(httpResponseData != null){
}
我如何应该先把饼干和附加链接它与这个请求。
感谢
CookieManager没有getCookieStore()方法 – Dimanoid