2013-03-22 2 views
5

Mein Browser (Webview) beginnt mit einer HTML-SeiteAutodetect Proxy - JavaFX - webview

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

Immer, wenn ich die Google zugreifen, ich möchte wissen, ob der Browser zu überprüfen, ob der Netzwerk-Proxy (proxy'm Arbeitsanleitung) hat

Damit der Browser einen Dialog zeigt Benutzernamen eingeben und Passwort.

Antwort

2

Sie können ProxySelector verwenden, um Proxy zu überprüfen. nächstes Beispiel Siehe:

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

Authentifizierung erfordert zusätzliche Codes in einigen Fällen sehen Authenticated HTTP proxy with Java für weitere Einzelheiten.