2011-01-05 29 views
21

Sto scrivendo un codice che si collega ai siti Web e controlla alcuni codici, come un crawler. Ma devo connettermi tramite un proxy e cambiare l'indirizzo IP (quindi non mostra l'IP del client nei log del server).Come utilizzare un proxy HTTP in java

Come può essere fatto tramite java?

+23

hmm suona come qualcosa di buono. – stevebot

risposta

43

È possibile utilizzare le proprietà del sistema java per impostare un proxy o passarlo come opzioni della riga di comando.

È possibile trovare alcuni dettagli e campioni here.

Es: Prima di aprire il collegamento

System.setProperty("http.proxyHost", "myProxyServer.com"); 
System.setProperty("http.proxyPort", "80"); 

Oppure è possibile utilizzare i proxy di rete predefinite configurate nel sytem

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

Dal momento che Java 1.5 è possibile creare un'istanza di proxy e passarlo a il metodo openConnection().

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("123.0.0.1", 8080)); 
URL url = new URL("http://www.yahoo.com"); 
HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy); 
uc.connect(); 

O come lisak suggerito, è possibile utilizzare alcune librerie 3a parte che sostiene il vostro bisogno di meglio.

+1

Si noti inoltre che la configurazione proxy per HTTPS utilizza una proprietà leggermente diversa, ad es. System.setProperty ("https.proxyHost", "myProxyServer.com") ;. Mi chiedevo perché all'inizio non funzionava per me ed era perché il mio codice utilizza HTTPS. – talawahtech

+1

Perché non esiste alcuna costante Proxy.Type.HTTPS (sicura)? – Stefan

10

Oppure è anche possibile utilizzare HttpClient che si adatta meglio alle vostre esigenze. Controlla la documentazione, è breve e molto informativo.

DefaultHttpClient httpclient = new DefaultHttpClient(); 

HttpHost proxy = new HttpHost("someproxy", 8080); 
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); 
+0

Tutorial qui: [link] (https://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/connmgmt.html#d5e475) –

Problemi correlati