Me gustaría crear una vista web de Android que se conecte a un sitio web a través de una conexión segura HTTPS
con el uso de credenciales.Establecer credenciales en una vista web de Android mediante conexión HTTPS segura
La primera dificultad fue aceptar el certificado (privado), se resolvió con this publicación muy útil.
La segunda dificultad es usar credenciales, encontré this mensaje.
(primera respuesta de dparnas) que parece tratar bastante bien con ella, pero habla de la conexión HTTP
y no de HTTPS
. Lo probé, pero no funciona, acabo de llegar a la página de formulario de inicio de sesión sin ningún mensaje de error, solo el formulario en blanco normal.
Aquí está mi código:
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");
}
}
Parece que no va a haber más respuestas, así que le otorgaré la recompensa.No tiene sentido perderlo :) –
"complicados escenarios de autorización" jajajajaja, este es un RFC completamente estándar de hace años, webview debería manejar esto ... – Nappy
mientras yo estoy de acuerdo que "debería" - ¡y desearía que lo hiciera! - webview solo expone un cierto subconjunto del comportamiento que admite la biblioteca HTTP completa ... – elijah