如何在Androidx中为ProxyConfig配置代理用户名密码认证
Android WebView ProxyConfig 代理用户名密码配置方案(androidx.webkit:1.4.0)
androidx.webkit:1.4.0 版本的 ProxyConfig.Builder 没有内置代理身份凭证的配置API,代理用户名密码验证不需要修改原有代理配置的构建逻辑,而是通过 WebView 的 WebViewClient 回调单独实现:
1 原有代理配置逻辑保持不变
你现有setProxy方法里的ProxyConfig构建代码不需要调整,代理地址设置逻辑和原来一致即可。
2 新增WebView身份验证回调
给用到代理的WebView实例设置自定义WebViewClient,重写onReceivedHttpAuthRequest方法,识别代理认证请求后填入用户名密码:
webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { // 校验请求认证的host是否为你配置的代理地址,避免凭证泄露 if (host.equals("123.123.123.123:8080")) { // 替换为实际的代理用户名、密码 handler.proceed("proxy_username", "proxy_password"); return; } // 非目标代理的认证请求走默认处理逻辑 super.onReceivedHttpAuthRequest(view, handler, host, realm); } });
3 注意事项
- 代理用户名密码属于敏感信息,不要硬编码在业务代码中,建议使用系统加密存储方案保存
- 必须对请求认证的host做校验,避免将代理凭证误提交给普通网站引发安全风险
- 如果代理地址是动态配置的,要同步更新host校验的判断逻辑
内容的提问来源于stack exchange,提问作者Coco
相关产品推荐
相关产品推荐

