Java: Netzwerk-Proxy per Code setzen

ProxyKein 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:

 

 

Übersicht

Ich kenne 4 Möglichkeiten einen Proxy in Java zu konfigurieren:

  • Systemeinstellungen nutzen
  • Systemproperties
  • Proxy-Klasse
  • automatisch erkennen lassen

 

Systemeinstellungen

		System.setProperty("java.net.useSystemProxies", "true");

 

Systemproperties

HTTP

// 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");

 

HTTPS

// 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");

 

FTP

// 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");

 

SOCKS

// Adresse
System.setProperty("socksProxyHost", "proxy.axxg.de");
// Port
System.setProperty("socksProxyPort", "1080");

// ggf. Authentifizierung
System.setProperty("socksProxyUser", "username");
System.setProperty("socksProxyPassword", "passwort");

 

Proxy-Klasse

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

 

Netzwerk-Proxy automatisch erkennen

Automatische Bestimmung des Proxys? Kein Problem, seit Java 5 gibt es den ProxySelector. HowTo’s findet ihr hier:

 

Die Quellen

 

Copyright © 2013 AxxG – Alexander Gräsel



2 Antworten : “Java: Netzwerk-Proxy per Code setzen”

  1. Martin Bories sagt:

    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.

Kommentar verfassen