選項1:Authorization
頭添加到請求:
HashMap<String, String> headers = new HashMap<String, String>();
String auth = "Basic " + Base64.encodeToString(password.getBytes("UTF-8"), Base64.NO_WRAP);
headers.put("Authorization", auth);
webview.loadUrl(url, headers);
選項2:
webview.setWebViewClient(new WebViewClient() {
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
if (realm.equals(expectedRealm) && host.equals(ipaddress)) {
handler.proceed(username, password);
} else {
handler.cancel();
}
}
});
另外:通過回調來處理驗證如果必須使用基本身份驗證,做自己一個忙和使用https:
;不要以明文形式發送密碼。
這個URL調用一個攝像頭,然後開始流式傳輸。它沒有啓用選項,所以我無法用頭來調用它。此外,我正在使用離子,混合框架。它不支持帶有任何可用插件的onReceivedHttpAuthRequest。 – Naju
道歉,沒有注意到混合移動應用程序標籤。我從來沒有用Ionic,Cordova或Angular.js開發過。我瀏覽了一大堆文檔,我確信有辦法通過自定義插件或自定義Angular模塊來完成此操作。希望有離子體驗的人可以回答。我的另一個想法是將您的憑證傳遞給URL中的查詢參數,並讓服務器/防火牆重寫URL以將證書移至正確的位置。 Apache mod_write在認證之前重寫了URL,所以這看起來應該可以工作。 –