HTTP POST Connect

Chatman

Mitglied
Hallo zusammen,

bitte um Hilfestellung: Leider schaffe ich keine Http-Login (POST) mittels folgendem Programm:


Java:
package Netzwerk;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;

public class Post 
{
	
	public static void main( String... args ) throws Exception
	{
	  String body = "user" + URLEncoder.encode( "userXXX", "UTF-8" ) + "&" +
      "pass" + URLEncoder.encode( "passXXX", "UTF-8" );
  
	  URL url = new URL( "http://www.ringschuh.at/login.html" );

	  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
	  connection.setRequestMethod( "POST" );
	  connection.setDoInput( true );
	  connection.setDoOutput( true );
	  connection.setUseCaches( false );
	connection.setRequestProperty( "Content-Type","application/x-www-form-urlencoded" );
	connection.setRequestProperty( "Content-Length", String.valueOf(body.length()) );
	
	OutputStreamWriter writer = new OutputStreamWriter( connection.getOutputStream() );
	writer.write( body );
	System.out.println( body );
	writer.flush();
	
	
	BufferedReader reader = new BufferedReader(
	                  new InputStreamReader(connection.getInputStream()) );
	
	for ( String line; (line = reader.readLine()) != null; )
	{
	System.out.println( line );
	}
	
	writer.close();
	reader.close();
	}
}

Vielen Dank!
 
Danke für die Antwort - möchte allerdings dieses Problem ohne eine Apache Server Installation lösen....
Ich habe dir mit einem Link mehrere Hilfestellungen gegeben:
1.) Du sieht, dass man über Google und Foren viel finden kann. Einfach loslegen ist eher suboptimal.
2.) Du wurdest mit sinnvollen Suchbegriffen für eine Google-Suche ausgestattet, falls es bisher daran scheiterte
3.) Du siehst eine Beispielimplementierung
4.) Die Beispielimplementierung verwendet eine API (das ist ein wichtiger Tipp!)
5.) ...

Mir fällt noch mehr ein. Das ist somit besser als ein Überraschungsei... so viele Hinweise... mit nur einem Link...
 
Leider habe ich Probleme beim import der angeführten .jar Files.
(Googeln brachte mich nicht weiter..:rtfm🙂

Folgende Imports funktionieren:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

Bei folgenden Imports werden Fehler angezeigt.(HttpComponents - Apache HttpComponents sind installiert)
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.cookie.CookieSpec;
import org.apache.commons.httpclient.methods.*;

Sämtliche jar Files wurden installiert und werden im Java Build Path angezeigt
-> Java Build Path - Add Library - User Library - Add JARs!

Fehlermeldung: Import can not be resolved!;(
 
Du musst noch die benötigten Lib's deinem Build Path hinzufügen.

Java Build Path -> Add External Jars -> Die benötigten .jar Dateien aus dem lib Ordner von dem heruntergeladenem Archive auswählen
 
Das hab ich bereits durchgeführt - Import-Anweisungen werden leider nicht erkannt ???
(ich kann hier leider keine Grafik anfügen!)

Im Ordner Libraries sind nun sämtliche LIBS vorhanden + wie von EdelStoff vorgeschlagen Add External Jars hinzugefügt!
 
Der Code passt nicht zur HttpClient Version.

Suche dir ein Beispiel zur der Version die du nutzt 😉
 
Hab mich jetzt einige Tage mit der Apache HttpClient Tutorial Doku beschäftigt. Sehr interessant. Leider schlägt mein Login auf dieser Seite immer noch fehl (Google funktioniert bereits 🙂) Mein Hauptproblem dürfte sein keinen Aussagekräftigen Response zu erhalten um weiter anhand einer Fehlermeldung analysieren zu können....

Wer hat da Erfahrung ?

Als Response wird immer 200 ausgegeben obwohl die Anmeldung fehl schläft:

HTTP/1.1
200
OK
HTTP/1.1 200 OK




Java:
public class Ringschuh_Test {
	public static void main(String[] args) {
		
		HttpClient client = new DefaultHttpClient();
		HttpPost post = new HttpPost("http://www.ringschuh.at/login.html");

		try {
			// HTTP POST
			List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
			nameValuePairs.add(new BasicNameValuePair("user", "XXXXX"));
			nameValuePairs.add(new BasicNameValuePair("pass", "YYYYY"));
			nameValuePairs.add(new BasicNameValuePair("submit", "Anmelden"));
			System.out.println(nameValuePairs);
			post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
			
			HttpResponse response = client.execute(post);
			HttpEntity entity = response.getEntity();

			if (entity != null) {
			long len = entity.getContentLength();
			if (len != -1 && len < 2048) {
			System.out.println(EntityUtils.toString(entity));
			
			
			} else {
				// Ergänzen
			}
			
			System.out.println(response.getProtocolVersion());
			System.out.println(response.getStatusLine().getStatusCode());
			System.out.println(response.getStatusLine().getReasonPhrase());
			System.out.println(response.getStatusLine().toString());
		
			BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
			
						
			String line = "";	
			
			while ((line = rd.readLine()) != null) {
				System.out.println(line);
				
				if (line.startsWith("Auth=")) {
					String key = line.substring(5);
					// 
				}
			}
			}
		}
			 catch (IOException e) {
			e.printStackTrace();
		}
	}
 

Zurück
Oben