HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten.

Neomatrix433

Mitglied
Hallo erst mal hab mich mal bei euch hier registriert, kurz zu mir dann zu meinem Problem ok.
Ich studiere Medieninformatik und programmiere nicht nur in Java auch in anderen Sprachen aber Java mag ich am liebsten :toll: Und ich bin schon fast in der Luft zerrissen worden wegen nicht exakter Formulierungen bei meinem Post im Anfängerforumbereich. Ja das war mein persönlicher erster Eindruck hier im Forum mal sehen ob es ja vielleicht besser wird wenn man was fragt und nicht wenn man ungenau Antwortet.

Aber jetzt mal zu meinem Problem:

Daten über mein System:

Meine IDE:
Eclipse Java EE IDE for Web Developers.
Version: Juno Release
Build id: 20120606-2254

Mein PC:
CPU: i7-2600K
RAM: 8GB
SSD: 120GB

Ich will mich auf dieser Internetseite: Free advertising! Free classifieds Free classified Ads Free Ads Free Internet advertising Free online advertising Online classifieds mit meinem kleinen Programm einloggen dafür verwende ich die Bib Apache 4.2.1 HttpClient

Habe mich auf einer anderen Seite erfolgreich einloggen können nur auf dieser Seite ist halt kein 302 redirect.

Das ist halt genau mein Problem wie komme ich an die Seite ran auf die ich mit dem 302 umgeleitet werde.

Hier mal das was ich mal so auf die schnelle runter geschrieben habe:
Java:
private void stepsForiNetGaint() {
	httpclientiNetGaint = new DefaultHttpClient();
	httpclientiNetGaint.setRedirectStrategy(new DefaultRedirectStrategy() {
	    @Override
	    public boolean isRedirected(HttpRequest request,
		    HttpResponse response, HttpContext context) {
		boolean isRedirect = false;
		try {
		    isRedirect = super.isRedirected(request, response, context);
		} catch (ProtocolException e) {
		    // TODO Auto-generated catch block
		    e.printStackTrace();
		}
		if (!isRedirect) {
		    int responseCode = response.getStatusLine().getStatusCode();
		    if (responseCode == 301 || responseCode == 302) {
			return true;
		    }
		}
		return false;
	    }
	});
	localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
	String usernameiNetGaint = mainwindow.getBenutzernameINetGaint()
		.getText();
	char[] passwordiNetGaintArray = mainwindow.getPasswordINetGaint()
		.getPassword();
	String passwordiNetGaint = String.valueOf(passwordiNetGaintArray);
	int statusCode = 0;
	// Logindaten erstellen
	List<NameValuePair> params = new ArrayList<NameValuePair>();
	params.add(new BasicNameValuePair("action", "login_post"));
	params.add(new BasicNameValuePair("email", usernameiNetGaint));
	params.add(new BasicNameValuePair("page", "user"));
	params.add(new BasicNameValuePair("password", passwordiNetGaint));
	// Login iNetGaint
	HttpPost postmethod = new HttpPost(INETGAINTLOGIN);
	// postmethod.addHeader("content-type",
	// "application/x-www-form-urlencoded");
	// postmethod
	// .addHeader("User-Agent",
	// "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0");
	try {
	    response = httpclientiNetGaint.execute(postmethod, localContext);
	    System.out.println(response);
	    if (response.getEntity() != null) {
		printSite(response.getEntity());
	    }
	} catch (ClientProtocolException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
}

hier die printSite:
Java:
private void printSite(HttpEntity entity) {
	try {
	    InputStream is = entity.getContent();
	    BufferedReader br = new BufferedReader(new InputStreamReader(is));
	    while ((str = br.readLine()) != null) {
		statusMeldung("" + str);
		System.out.println("" + str);
	    }
	} catch (IllegalStateException e1) {
	    // TODO Auto-generated catch block
	    e1.printStackTrace();
	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
    }

Ich lande immer wieder auf der Loginseite, habe mit Firebug den post anlalysiert bin aber jetzt am Ende mit meinem Latein.

Wäre super wenn mir einer von euch da mit etwas Quellcode helfen könnte, die API von HttpClient hat mich auch nicht wirklich weiter gebraucht und die Tutorials auf der Seite auch nicht.

Daher hoffe ich jetzt auf euch und eure Hilfe!
 
N

nillehammer

Gast
Ersetze den Teil Deines Codes:
[JAVA=3]
httpclientiNetGaint.setRedirectStrategy(new DefaultRedirectStrategy() {
@Override
public boolean isRedirected(HttpRequest request,
HttpResponse response, HttpContext context) {
boolean isRedirect = false;
try {
isRedirect = super.isRedirected(request, response, context);
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (!isRedirect) {
int responseCode = response.getStatusLine().getStatusCode();
if (responseCode == 301 || responseCode == 302) {
return true;
}
}
return false;
}
});
[/code]
Durch den hier:
[JAVA=3]
httpclientiNetGaint.setRedirectStrategy(new LaxRedirectStrategy());
[/code]
Das müsste dafür sorgen, dass der HttpClient einem Redirect auch nach einem Post-Request folgt.
 

Neomatrix433

Mitglied
Hab ich gemacht komme immer nur auf die Loginseite dann muss ja irgendwas mit meinem Login falsch sein. Aber so wie ich die Parameter übergebe ist es doch richtig auch unter HttpClient 4.2.1 oder haben die das da auch geändert.

Es sind im HTML-Code auch die:
HTML:
    <input type="hidden" name="page" value="user" />

    <input type="hidden" name="action" value="login_post" />

Felder die ich auch in der Post mit übergebe, oder verstehe ich das falsch.
Als URI kann ich doch die: "http://www.inetgiant.com/user/login" nehmen und dahin den Post senden oder direkt an die "http://www.inetgiant.com" URI? In Firebug sehe ich das senden an die zweite URI die ich genannt habe.
mit den Parametern die ich auch an den Post hänge. :rtfm:
 
N

nillehammer

Gast
  • Der POST muss an die Url, die im action-Attribut des Formulars steht. Das steht bei dem von Dir genannten Formular auf "/". D.h. es geht direkt auf "http://www.inetgiant.com/"
  • Es müssen alle Input-Elemente als POST-Parameter enthalten sein. Das schließt auch hidden inputs und übrigens auch den Value des Submit-Buttons ein.
  • Ich sehe in Deinem Code zwar, dass Du eine List mit NameValuePairs anlegst, aber ich kann nirgends entdecken, wie Du diese an den HttpPost anhängst. Das geht so:
    Java:
     postmethod.setEntity(new UrlEncodedFormEntity(params));
 

Neomatrix433

Mitglied
Ja hab ich auch genau so gemacht wie du es geschrieben hast. Aber selbst wenn ich das jetzt so habe:

Java:
private void stepsForiNetGaint() {
	httpclientiNetGaint = new DefaultHttpClient();
	httpclientiNetGaint.setRedirectStrategy(new LaxRedirectStrategy());
	localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
	String usernameiNetGaint = mainwindow.getBenutzernameINetGaint()
		.getText();
	char[] passwordiNetGaintArray = mainwindow.getPasswordINetGaint()
		.getPassword();
	String passwordiNetGaint = String.valueOf(passwordiNetGaintArray);
	// Logindaten erstellen
	List<NameValuePair> params = new ArrayList<NameValuePair>();
	params.add(new BasicNameValuePair("action", "login_post"));
	params.add(new BasicNameValuePair("email", usernameiNetGaint));
	params.add(new BasicNameValuePair("page", "user"));
	params.add(new BasicNameValuePair("password", passwordiNetGaint));
	params.add(new BasicNameValuePair("submit", "Sign in"));
	// Login iNetGaint
	HttpPost postmethod = new HttpPost(INETGAINT);
	try {
	    postmethod.setEntity(new UrlEncodedFormEntity(params));
	    response = httpclientiNetGaint.execute(postmethod, localContext);
	    if (response.getEntity() != null) {
		printSite(response.getEntity());
	    }
	} catch (ClientProtocolException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
}

bekomme ich keine Seite in der Console angezeigt ick bin wirklich mit den Nerven am Ende zweifele langsam an mir selber und meinen Programmierkenntnissen ;(
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
G apache httpClient Problem. Netzwerkprogrammierung 5
M Apache HTTPClient Server log ausgeben ?! Netzwerkprogrammierung 3
R Apache HttpClient File Download? Netzwerkprogrammierung 3
M need org.apache.commons.httpclient.* Netzwerkprogrammierung 8
K Login via apache httpclient Netzwerkprogrammierung 4
T HTTP Apache Commons HttpClient Bibliothek Netzwerkprogrammierung 2
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
T Apache HttpClient & Default Headers Netzwerkprogrammierung 9
T apache HTTPClient einloggen Netzwerkprogrammierung 2
Q HTTPS mit Apache HttpClient Netzwerkprogrammierung 4
C HTTPS mit Apache HTTPClient Netzwerkprogrammierung 1
M org.apache.commons.httpclient.HttpClient Netzwerkprogrammierung 3
Nuiton FTP Apache Commons: FTPClient und Sicherheit Netzwerkprogrammierung 9
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
D Apache Mina Serial: Error Netzwerkprogrammierung 2
0 Apache Commons File Object bekommen Netzwerkprogrammierung 4
W HTTP Apache HttpComponents und GZIP Netzwerkprogrammierung 2
F Apache commons net SFTPClient Netzwerkprogrammierung 5
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Apache Solr doc & pdf Upload Netzwerkprogrammierung 8
C apache commons net ftp bei upload unvollständig Netzwerkprogrammierung 3
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
R Apache Mina - Hilfestellung Netzwerkprogrammierung 32
D Apache Mina und GWT Servlet Netzwerkprogrammierung 4
N SFTP apache keine Verbindungaufbau möglich Netzwerkprogrammierung 6
dayaftereh Fragen zu Apache Mina? Netzwerkprogrammierung 5
Kr0e Apache Mina -> await() Netzwerkprogrammierung 30
B Tomcat Apache Server Netzwerkprogrammierung 6
J org.apache.http.auth.NTCredentials Netzwerkprogrammierung 2
A org.apache.commons http client in Netbeans einbinden Netzwerkprogrammierung 3
Kr0e Apache Mina Problem Netzwerkprogrammierung 2
G apache von außen zugänglich machen Netzwerkprogrammierung 5
1 Upload problem! org.apache.commons.net.ftp Netzwerkprogrammierung 3
S Google Search Webservice mit Apache Axis realisieren? Netzwerkprogrammierung 2
I Apache http-client: Problem beim Proxyaufruf Netzwerkprogrammierung 2
S Applet und JWS auf Apache-Axis (SOAP) Netzwerkprogrammierung 8
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
A http request per socket an apache server Netzwerkprogrammierung 5
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
B HttpClient Netzwerkprogrammierung 2
M HTTP HTTPClient Authentication - Quickr Server Netzwerkprogrammierung 8
H Java 1.4 HTTPClient Content von PutMethod Netzwerkprogrammierung 4
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
M Dateiupload mittels HttpClient Netzwerkprogrammierung 3
F FileUpload mit commons HttpClient Netzwerkprogrammierung 17
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
H Bilder mit HttpClient hochladen Netzwerkprogrammierung 3
T HttpClient - Senden via Post Netzwerkprogrammierung 12
M httpclient kann sich nicht auf asp.net Seite anmelden Netzwerkprogrammierung 2
M Seltsame Fehlermeldung (httpclient) Netzwerkprogrammierung 6
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
E HttpClient und return Problem Netzwerkprogrammierung 6
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
J Jakarta HTTPClient Netzwerkprogrammierung 5
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3
Dann07 Audio streamen bricht immer ab nach kurzer Zeit Netzwerkprogrammierung 6
G seite nach posten eines html-forms laden Netzwerkprogrammierung 0
N websocket - keine Daten mehr nach ca 80 Sekunden Netzwerkprogrammierung 0
C Gerenderte Website nach der ausführung von JavaScript als HTML Code aus lesen Netzwerkprogrammierung 4
F Wiederverbinden nach socket Abbruch Netzwerkprogrammierung 1
T Socket sendet erst nach socket.close() Netzwerkprogrammierung 2
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
L Verzeichnisse mit Inhalt nach SMB-Share kopieren Netzwerkprogrammierung 16
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
P Datenpakete nach Australien Netzwerkprogrammierung 7
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
J Nach Dateiversand werden keine Nachrichten mehr übertragen Netzwerkprogrammierung 11
J Nachricht kommt erst nach beendigung der Anwendung an Netzwerkprogrammierung 4
D Socket Automatischer Reconnect nach einem Disconnect. Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
B IP nach gewissen Kriterien überprüfen Netzwerkprogrammierung 5
V JNLP startet nicht !!?!! (je nach PC) Netzwerkprogrammierung 1
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
Q Datein von Windows nach Mac senden Netzwerkprogrammierung 4
L RMI Programm beendet ohne Fehler sofort nach Start (Windows 2000) Netzwerkprogrammierung 7
T Zugriffsverweigerung nach Dateitransfer Netzwerkprogrammierung 7
T Nach Servern suchen Netzwerkprogrammierung 2
L nach Servern suchen Netzwerkprogrammierung 2
M ordner nach socket-übertragung defekt Netzwerkprogrammierung 5
B Im eingelesenen Text nach einem Wort suchen Netzwerkprogrammierung 46
M serialisierung funktioniert nur nach neuer instanzierung Netzwerkprogrammierung 3
W fehlerhafte Datei nach Dateitransfer per ServletOutputStream Netzwerkprogrammierung 2
A Client stürzt nach versand ab Netzwerkprogrammierung 13
M Verbindung nach Serverabsturz wieder aufbauen Netzwerkprogrammierung 9
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
G Port belegt nach Server restart Netzwerkprogrammierung 5
G Socket wird nach Portscann geschlossen Netzwerkprogrammierung 2
N Verarbeitung nach Weiterleitung in Sockets Netzwerkprogrammierung 2
L Frage nach Socket Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben