Post Request an https Formular abschicken

P

PostRequest

Hey, ich code ein kleines tool, welches ein paar Eintragungen auf einer https Seite durchführt und diese dann auch abschicken soll.

Vorher liest es noch ein captcha aus, zeigt dieses an, damit man des dann in ein Textfeld eingeben kann...

So hier mal der Code Ausschnitt mit dem socket:

zuerst wird ein Socket aufgebaut, der Quellcode ausgelesen und in einer Methode gescannt damit ich nen captchalink rauskriege!

Java:
               SSLSocket socket = (SSLSocket) SSLSocketFactory.getDefault()
               .createSocket("www.xxxxx.de", 443);
				boolean autoflush = true;
				PrintWriter out   = new PrintWriter( socket.getOutputStream(), autoflush );
				BufferedReader in = new BufferedReader( 
					    new InputStreamReader( socket.getInputStream() ));
				out.println("GET /all.jsf HTTP/1.1");  //zu öffnender Formular = www.xxx.de/all.jsf
				out.println("Connection: Keep-Alive");
				out.println("Host: www.xxxxx.de");
				out.println("");
		        String str;

				while (null != ((str = in.readLine()))) {
				quellcode =(quellcode+"\n"+str);
				//Quellcode wird in String geschrieben
				}
				//System.out.println(quellcode);
				checkcaptcha(quellcode); //hier wird aus dem Quellcode der captchalink herausgelesen.
			Icon icon = new ImageIcon( captchal );
			JLabel captchabild = new JLabel(icon);
			panel1.add(captchabild); // captcha anzeigen
			sFrame.setVisible(true);

Danach gibt man in die GUI den captcha ein klickt nen Button und das Programm geht aus ner Endlosschleife und macht weiter:

Java:
				System.out.println("Mouse Clicked");	
				//[start]
				String usr = new String(ranusername());
				String passwort = new String(ranpass());
					loginname.setText(usr);
					loginpass.setText(passwort);
				
				String data =
						  "step1:salutation= 1" //("Mann")
						+ "&step1:prename=" + URLEncoder.encode(ranprename())
						+ "&step1:name=" + URLEncoder.encode(ranname());

				PrintWriter out2   = new PrintWriter( socket.getOutputStream(), autoflush );
				BufferedReader in2 = new BufferedReader( 
					    new InputStreamReader( socket.getInputStream() ));
				out2.println("POST /all.jsf HTTP/1.1");
				out2.println("Connection: Keep-Alive");
				out2.println("Host: www.xxxxxx.de");
		        out2.println("Content-Length: "+data.length()+"\r\n");
		        out2.println("Content-Type: application/x-www-form-urlencoded\r\n");
				out2.println("Cookie: JSESSIONID=" + URLEncoder.encode(sessionstring));
		        out2.println("\r\n");
				out2.println(data);
				out2.println("clear_step1();");//Methode die beim Buttonclick auf der Website ausgeführt wird
				//out2.println("step1_SUBMIT");
				out2.println("");
				quellcode = "";
				String str2 = "";
				System.out.println("Acc. Created");
				while (null != ((str2 = in2.readLine()))) {
					quellcode =(quellcode+"\n"+str2);
					}
				System.out.println(quellcode);//Hier sollte er eig. die Antwort vom POST Befehl ausgeben!
				System.out.println("quellcode fertig");

So den captcha auslesen klappt wunderbar, jedoch hab ich Stress mti der POST methode!
Ich sende nen Cookie mit, den ich auch zusammen mti dem captchalink vorher auslese.!
Da des alles über https geht, kann ich auch fast nix mit Wireshark mitschneiden xD alles verschlüsselt.

Die 2. Rückgabe des Quellcodes nach der POST Eingabe, hat vorher get, jetzt gehts iwie nicht mehr!

Und vorher kam der Quellcode von der gleichen Seite raus, mit leeren Textfeldern, sprich es wurde nichts befüllt!

Kann einer vllt. mal drüber schauen und seine Meinung dazu sagen?
Wäre dankbar.

mfg
 

Neue Beiträge

Zurück