資格情報を使用して保護されたHTTPS
接続を介してWebサイトに接続するAndroid Webviewを作成したいとします。セキュリティで保護されたHTTPS接続を使用してAndroid Webviewで資格情報を設定する
最初の難しさは、証明書(私的)を受け入れることでした。それはthisという非常に便利な投稿で解決されました。
2番目の難点は、資格情報を使用することです。私はthisの投稿を見つけました。
(最初の回答はdparnasですが)それにかなりうまくいくようですが、HTTP
接続についてはHTTPS
ではないと話しています。私はそれを試しましたが、それは動作しません、私はちょうど通常の空白のフォーム、エラーメッセージなしでサインインフォームのページに到達します。ここで
が私のコードです:
import android.app.Activity;
import android.net.http.SslError;
import android.os.Bundle;
import android.webkit.HttpAuthHandler;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class ConnectorWebView extends Activity {
WebView mWebView;
String mUsrName;
String mPassC;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.connwebview);
// Getting info from Intent extras
// Get it if it s different from null
Bundle extras = getIntent().getExtras();
mUsrName = extras != null ? extras.getString("username") : null;
mPassC = extras != null ? extras.getString("passcode") : null;
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setHttpAuthUsernamePassword("myhost.com", "myrealm", mUsrName, mPassC);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedHttpAuthRequest (WebView view, HttpAuthHandler handler, String host, String realm){
handler.proceed(mUsrName, mPassC);
}
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed() ;
}
});
mWebView.loadUrl("https://myhost.com/secured_area");
}
}
それ以上の回答があるようには見えないので、奨励金を授与するつもりです。それを失うことのない点:) –
"複雑な認証シナリオ" hahahahhah、これは完全に標準的なRFCから数年前、webviewはこれを処理する必要があります... – Nappy
私はそれを "should"に同意しながら - そして私は望みます! - webviewは、完全なHTTPライブラリがサポートする動作の特定のサブセットを公開するだけです... – elijah