2013-03-22 19 views
5

私のブラウザ(WebViewが)HTMLページ自動検出プロキシ - JavaFXの - WebViewの

FILEJAVA.class.getResource( "FILEHTML.html")で始まります。 ToExternalForm()

私はGoogleにアクセスするたびに、私はブラウザは、ユーザー名を入力するためのダイアログが表示され、そのようにネットワークがプロキシ(proxy'm作業マニュアル)

を持っている場合は、ブラウザチェックするかどうかを知りたいですパスワード。

答えて

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

真偽は詳細についてはAuthenticated HTTP proxy with Javaを参照してください、いくつかのケースでは、追加のコードが必要な場合があります。

関連する問題