我需要使用憑據在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