1

我正在使用 Android 上的 Geckoview 构建一个概念验证浏览器。作为要求的一部分,我需要能够将其配置为通过代理服务器进行身份验证。我已经尝试了各种配置选项,但似乎无法在从代理服务器收到 407 时弹出一个带有代理身份验证请求的对话框或发送存储的凭据。请求在没有身份验证信息的情况下到达代理,服务器以 407 响应。

private fun setupGeckoView() {
    PrefsHelper.setPref("network.proxy.type",1,true)
    PrefsHelper.setPref("network.proxy.http","myproxy.domain.com",true)
    PrefsHelper.setPref("network.proxy.port",3119,true);
    PrefsHelper.setPref("network.proxy.ssl","myproxy.domain.com",true)
    PrefsHelper.setPref("network.proxy.share_proxy_settings", true,true)
    PrefsHelper.setPref("network.proxy.ssl_port",3119,true)
    PrefsHelper.setPref("network.proxy.username","test",true)
    PrefsHelper.setPref("network.proxy.password","testpass",true)
    geckoView = findViewById(R.id.geckoview)

    val runtime = GeckoRuntime.create(this)

    geckoSession.open(runtime)
    geckoView.setSession(geckoSession)
    geckoSession.loadUri(INITIAL_URL)
    urlEditText.setText(INITIAL_URL)

    var customUserAgent = "My UserAgent"
    geckoSession.settings.userAgentOverride = customUserAgent
    geckoSession.progressDelegate = createProgressDelegate()
    geckoSession.settings.useTrackingProtection = true
    geckoSession.contentBlockingDelegate = createBlockingDelegate()
    setupTrackersCounter()
}

当我在模拟器中执行 about:config 并尝试了诸如 network.automatic-ntlm-auth.allow_proxies (true,false) 之类的设置时,我确实看到了配置选项设置。有人可以建议在 geckoview 中设置和 http(s) 代理所需的最低设置。

4

0 回答 0