Kein großer Akt, aber man brauch es immer wieder mal. Die programmatische Konfiguration eines Proxys in Java. Ich habe die wichtigsten Protokolle und Methoden kurz zusammen gestellt:
Ich kenne 4 Möglichkeiten einen Proxy in Java zu konfigurieren:
System.setProperty("java.net.useSystemProxies", "true");
// Adresse System.setProperty("http.proxyHost", "proxy.axxg.de"); // Port System.setProperty("http.proxyPort", "8080"); // ggf. Authentifizierung System.setProperty("http.proxyUser", "username"); System.setProperty("http.proxyPassword", "passwort");
// Adresse System.setProperty("https.proxyHost", "proxy.axxg.de"); // Port System.setProperty("https.proxyPort", "443"); // ggf. Authentifizierung System.setProperty("https.proxyUser", "username"); System.setProperty("https.proxyPassword", "passwort");
// Adresse System.setProperty("ftp.proxyHost", "proxy.axxg.de"); // Port System.setProperty("ftp.proxyPort", "20"); // ggf. Authentifizierung System.setProperty("ftp.proxyUser", "username"); System.setProperty("ftp.proxyPassword", "passwort");
// Adresse System.setProperty("socksProxyHost", "proxy.axxg.de"); // Port System.setProperty("socksProxyPort", "1080"); // ggf. Authentifizierung System.setProperty("socksProxyUser", "username"); System.setProperty("socksProxyPassword", "passwort");
Eine andere Variante ist die Nutzung der Proxy-Klasse.
SocketAddress addr = new InetSocketAddress("proxy.axxg.de", 1080); Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); URL url = new URL("http://blog.axxg.de"); URLConnection conn = url.openConnection(proxy); // oder SocketAddress addr = new InetSocketAddress("proxy.axxg.de", 8080); Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); URL url = new URL("http://blog.axxg.de"); URLConnection conn = url.openConnection(proxy);
Automatische Bestimmung des Proxys? Kein Problem, seit Java 5 gibt es den ProxySelector. HowTo’s findet ihr hier:
Copyright © 2013 AxxG – Alexander Gräsel
Cool, aber wie kann ich Proxies an sich verwenden? Ich habe einen eigenen HTTP client geschrieben, basierend auf Internetverbindungen mittels der Socket – Klasse. Nun möchte ich aber einen Proxy verwenden und kann aber hierzu nirgends ein Tutorial oder zumindest anfängliche Infos finden, die mir dann weiter helfen…
Ich glaub, dass ich die Frage noch nicht ganz verstanden habe…:-/
Aber die Verwendung der Proxy-Klasse habe ich ansatzweise in Absatz 2 „Proxy-Klasse“ gezeigt und ein Proxy an sich kannst du dir, wie ein Sieb vorstellen. Anstatt eine Anfrage direkt ins Internet zu senden, wird die Anfrage zuerst an den Proxy gesendet. Der Proxy wiederum liest die Anfrage und blockt diese oder leitet sie weiter.