2016-11-29 4 views
0

Ich habe ein interessantes Szenario hier. Ich habe eine Proxy-Server-Adresse, die mir jedes Mal eine neue Exit-IP bereitstellen soll, wenn ich eine HTTP-Anfrage an sie mache. Ich habe bemerkt, dass sich die Exit-IP nur ändert, wenn ich das Programm neu starte, im Gegensatz zu jeder Schleifeniteration. Unten ist meine Quelle.Erneute Verbindung zu Proxy Server herstellen

Schleife ruft getHTML jede Iteration:

String result = getHTML("https://wtfismyip.com/text"); 


public static String getHTML(String urlToRead) throws Exception { 
    InetSocketAddress addy = new InetSocketAddress("example.proxy.com", 1234); 
    Proxy proxy = new Proxy(Proxy.Type.HTTP, addy); 
    StringBuilder result = new StringBuilder(); 
    URL url = new URL(urlToRead); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy); 
    conn.setRequestMethod("GET"); 
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    String line; 
    while ((line = rd.readLine()) != null) { 
     result.append(line); 
    } 
    rd.close(); 
    conn.disconnect(); 
    return result.toString(); 
} 

Ergebnis fortsetzen wird jedes Mal die gleiche IP sein, bis ich das Programm neu starten. Ich habe das Gefühl, dass ein Strom oder eine Steckdose noch nicht geschlossen ist und die Verbindung aufrecht erhält.

Antwort

0

Die Antwort auf mein Problem gefunden. Der TCP-Socket wurde am Leben gehalten und würde es ermöglichen, den Tunnel zum Proxy weiterzuleiten, ohne die Verbindung wiederherzustellen.

Ich musste diese Anweisung irgendwo in meinem Code hinzufügen, ich lege es am Anfang der Initialisierung dieser Klasse.

System.setProperty("http.keepAlive", "false"); 
Verwandte Themen