httpclient - Verbindung hängt ?

Nisbo

Bekanntes Mitglied
Servus,

ich nutze das Example von hier
3. Apache HttpClient – Automate login Google

https://www.mkyong.com/java/apache-httpclient-examples/

und habe es an meine Verhältnisse angepasst.

Soweit funktioniert es auch, ich rufe die Loginseite per GetPageContent auf (nicht Google sondern da wo ich mich einlogge) lese die Pars aus mit getFormParams und sende dann das Formular mittels sendPost ab.

Danach rufe ich mittels GetPageContent eine weitere Seite auf, das funktioniert auch noch.

Aber hier gehts dann aber nicht mehr weiter, sprich ich kann keine weiteren Seiten mittels GetPageContent aufrufen, wie es ausschaut hängt der Client.

client.getConnectionManager() ist deprecated, dachte darüber kann man dann Verbindungen "resetten"

Hat jemand eine Idee wo der Fehler liegt ?
 
Nein keine Exception, es hängt einfach nur, der gesamte ProgrammThread wohl da das Programm selbst auch nicht reagiert (habe es noch ohne Thread).

beim 3. Aufruf der Methode GetPageContent bleibt er bei START hängen
System.out.println("START");
HttpResponse response = client.execute(request);
System.out.println("ENDE");
auch wenn ich da die selbe URL aufrufe wie schon beim 2. Aufruf
Java:
// 1. Aufruf der Login Seite --> FUNKTIONIERT
String page = GetPageContent(url);

// 2. Parameter der Login Seite auslesen --> FUNKTIONIERT
List<NameValuePair> postParams = getFormParams(page, "Username","Password");

// 3. Post mit aufbereiteten Daten senden --> FUNKTIONIERT
String weiterleitung = sendPost(url, postParams);

// 4.. Wenn die Rückmeldung passt
if(weiterleitung.contains("Das was es haben soll")){
// 5. Aufruf der Übersichtsseite mit den Daten/Links zu den Daten die ich haben möchte --> FUNKTIONIERT
// --> FUNKTIONIERT
String page2 = GetPageContent(nochNeURL);

// 6. hier verarbeite ich den HTML Code und hole mir die Links raus

// 7. Aufruf eines der Links (zum testen hardcodet) --> geht nicht
// hier bleibt er wie gesagt einfach hängen
String page3 = GetPageContent(urlZuEinemTextFile);
}
 
Ja hängt auch da, habe den Code von oben (Code 3) unverändert in ein neues Projekt eingefügt
und nur
Java:
String page = http.GetPageContent(url);

durch
Java:
System.out.println("START1");
        String page = http.GetPageContent(url);
        System.out.println("ENDE1");
       
        System.out.println("START2");
        String page2 = http.GetPageContent(url);
        System.out.println("ENDE2");
       
        System.out.println("START3");
        String page3 = http.GetPageContent(url);
        System.out.println("ENDE3");
ersetzt

das ist die Ausgabe
Code:
START1

Sending 'GET' request to URL : https://accounts.google.com/ServiceLoginAuth
Response Code : 200
ENDE1
START2

Sending 'GET' request to URL : https://accounts.google.com/ServiceLoginAuth
Response Code : 200
ENDE2
START3

also auch hier geht der 3. Aufruf nicht, warum auch immer 🙁
 
Also ich habs bei mir laufen lassen, funktioniert ohne Probleme.

Bau mal zwishcen jeden Aufruf ein
Code:
Thread.sleep(1000);
ein, könnte ein Problem mit deiner FIrewall sein oder so?
Das die es unterdrückt, wenn jemand in kurzer Zeit dreimal die selbe Webseite anspricht oder so?
 
Ledider keine Änderung, auch mit Firewall (Bitdefender) of gehts nicht beim 3. mal
Welches Java verwendest Du 1.8 ?
Welche httpclient Version hast Du geladen ? 4.5.2.zip ?
Ich nutze Eclipse falls das ne Rolle spielt
 
Habe auch die 1.8 aber Eclipse Mars.2 Release (4.5.2) auf Win 10 - 64 Bit, hatte auch mal mit Java 1.6 versucht, keine Änderung.

Das ist doch komisch, habe das Problem auf 2 verschiedenen Rechnern 🙁

Außer dem Sleep und die 2 zusätzliochen Aufrufe hast Du den Code auch so unverändert übernommen ?
 
Nein der eine war zu Hause und der anderen hier auf Arbeit über UMTS. Hatte es ja auch mit verschiedenen URLs versucht, Router würde ich da eher mal ausschießen.
 
Also ich habe das Problem selbst gefunden, der Bufferedreader wird in dem beispiel nicht geschlossen
rd.close();
in GetPageContent
vor
// set cookies
dann klappt es auch bei mir
 

Zurück
Oben