6

私のブラウザー (webview) は HTML ページで始まります

FILEJAVA.class.getResource (「FILEHTML.html」)。外部フォームへ ()

Googleにアクセスするたびに、ネットワークにプロキシがあるかどうか、ブラウザがチェックするかどうかを知りたい(プロキシは動作マニュアルです)

ブラウザにユーザー名とパスワードを入力するダイアログが表示されるようにします。

4

1 に答える 1

2

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();
    }
}

場合によっては、認証に追加のコードが必要になることがあります。詳細については、Java を使用した認証済み HTTP プロキシを参照してください。

于 2013-03-28T14:57:46.593 に答える