webview - 自动检测代理 - JavaFX - webview

标签 webview proxy javafx-2 javafx

我的浏览器 (webview) 以 HTML 页面开头

FILEJAVA.class.getResource ("FILEHTML.html")。 ToExternalForm ()

每当我访问谷歌时,我想知道浏览器是否检查,网络是否有代理(代理工作手册)

这样浏览器就会显示一个对话框来输入用户名和密码。

最佳答案

您可以使用 ProxySelector检查代理。看下一个例子:

public class DetectProxy extends Application {

    private Pane root;

    @Override
    public void start(final Stage stage) throws URISyntaxException {
        root = new VBox();

        List<Proxy> proxies = ProxySelector.getDefault().select(new URI("http://google.com"));
        final Proxy proxy = proxies.get(0); // ignoring multiple proxies to simplify code snippet
        if (proxy.type() != Proxy.Type.DIRECT) {
            // you can change that to dialog using separate Stage
            final TextField login = new TextField("login");
            final PasswordField pwd = new PasswordField();
            Button btn = new Button("Submit");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent t) {
                    System.setProperty("http.proxyUser", login.getText());
                    System.setProperty("http.proxyPassword", pwd.getText());
                    showWebView();
                }
            });
            root.getChildren().addAll(login, pwd, btn);
        } else {
            showWebView();
        }

        stage.setScene(new Scene(root, 600, 600));
        stage.show();
    }

    private void showWebView() {
        root.getChildren().clear();
        WebView webView = new WebView();

        final WebEngine webEngine = webView.getEngine();
        root.getChildren().addAll(webView);
        webEngine.load("http://google.com");

    }

    public static void main(String[] args) {
        launch();
    }
}

在某些情况下,身份验证可能需要额外的代码,请参阅 Authenticated HTTP proxy with Java详情。

关于webview - 自动检测代理 - JavaFX - webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575276/

相关文章:

mysql - maxscale 找不到 gtid_binlog_pos

javafx 变量在两个 Controller 之间传输数据(在不同 Controller 中设置和获取数据)- 已更新

java - 如何在 JavaFX 中组合 FXML 文件和组?

Android WebView 链接到带有 target=_blank 的同一窗口以打开新窗口

android - 在 webview 中缩放图像以适应父布局高度,因此默认情况下没有滚动。 (安卓)

JavaFX WebView 无法加载某些网站

java - 从 JavaFX Canvas 获取像素数据的最佳方式?

即使在修改设置或使用 js 后,Android webview 也无法自动播放 youtube 视频

python - 模块未找到错误 : No module named 'requests_kerberos'

tomcat - 反向代理 lighttpd https 不工作