Mam zbadane i zbadane i zbadane to, aż będę szary i łysy. Jak na ziemi mogę dostać webview pracować dla strony, która potrzebuje podstawowego uwierzytelniania HTTP za pośrednictwem połączenia HTTPS poziomie api 8+Widok strony na Androida z połączeniem https i podstawowym uwierzytelnieniem. Jak to działa?
Mam następujący kod
String email = Util.getEmail(this);
String pwd = Util.getPassword(this);
webview.getSettings().setJavaScriptEnabled(true);
webview.setHttpAuthUsernamePassword(Config.SERVER_BASE_URL, "Application", email, pwd);
// webview.setWebViewClient(new MobileWebViewClient(this));
webview.loadUrl(url);
Jak widać zrobiłem posiada klient zobaczyć web (obecnie wykomentowane), który zastępuje metodę onReceivedHttpAuthRequest który wygląda jak ten
@Override
public void onReceivedHttpAuthRequest (WebView view, HttpAuthHandler handler, String host, String realm){
String email = Util.getEmail(wvContext);
String pwd = Util.getPassword(wvContext);
if(!pwd.equalsIgnoreCase("-1") && !pwd.equalsIgnoreCase("-1")){
handler.proceed(email, pwd);
}
}
ten został wykorzystany bez webview.setHttpAuthUsernamePassword i działa dobrze, z wyjątkiem, że to znaczy, 2 wnioski są wydawane W. ebsite - pierwsza dostaje 401, a następnie klienta z materiałem autoryzacyjnym To jest dobre dla niewielkiej ilości ruchu na stronie, ale zmniejszenie ruchu o połowę (obecnie średnia z 49 żądań p/m) jest teraz nazwą gry !
Czytałem, że mogę wstępnie zapobiegawczo dostarczyć poświadczenia za pomocą
webview.setHttpAuthUsernamePassword(Config.SERVER_BASE_URL, "Application", email, pwd);
Jednak to właśnie powoduje Podstawowe HTTP: Odmowa dostępu błędy Stała baza serwer URL to nazwa domeny dla strony tj https://example.com (bez strony) faktyczny adres URL to https://example.com/some_pages. Nie ma znaczenia, czy używam pełnego adresu URL czy domeny. Sprawdziłem królestwo i mam to poprawne i użyłem tylko pustych ciągów zawierających tylko email i hasło. Czy może to mieć coś wspólnego z faktem, że witryna używa https? Mój kod wydaje się działać dobrze na moim dev boxie bez https, ale może to być czerwony śledzia.!
Jedyne pytania dotyczące przepełnienia stosu, które wydają się obejmować moje wymagania, nie zostały zaakceptowane, a dokumenty nie stanowią pomocy, którą mogę zobaczyć.
Mam teraz tak duży wgniecenie w mojej głowie od uderzania nim o ceglaną ścianę, że myślę o zdobyciu kwadratowego kapelusza.
Proszę, jeśli ktoś może dać mi rozwiązanie tego, będę na zawsze w długach! Mogę nawet wysłać Ci wiadomość e-mail KitKat
biorę to [to pytanie, a jego odpowiedź zaakceptowane] (http://stackoverflow.com/questions/1968416/how-to-do-http-authentication-in-android) nie rozwiąże problemu ? –
@Aaamos, To może rozwiązać mój problem, ale jak mam to zastosować do WebView? – jamesc
Czy próbowałeś pobrać stronę za pomocą httppost, a następnie dostarczyć ją do przeglądarki internetowej? – Warpzit