Filiz Gelöst!: Unterschied zwischen Submit und "Seitenaufruf"

Beitrag lesen

Keineswegs, nein. Du musst nur das Formular abrufen, dabei kriegst du ein Cookie (oder mehrere) und die Captcha-Grafik. Als nächsten Schritt brauchst du normalerweise nur die Formulardaten und das/die erhaltene/n Cookie/s zurückzuschicken. Etwas anderes macht ein Browser ja auch nicht.

Hallo,

ich konnte das Problem scheinbar lösen.
Tatsächlich haben meine beiden anderen Methoden auch funktioniert.
Das Problem war, dass es zu einer Art Wettlaufsituation gekommen ist, bedingt durch die Schleife in der ich dauernd neue URLs aufgerufen habe. Bei genauem betrachten der Wireshark Logs ist es mir aufgefallen:

1. Formular mit Captcha wird abgesendet
GET /sorry/Captcha?continue=[host]/products?[q=...]&aq=f&id=10766246835841737731&captcha=wartost HTTP/1.1\r\n

2. Das ist schon eine neue Anfrage
GET /products?[q=...]&aq=f HTTP/1.1\r\n

3. Hier wird das Captcha akzeptiert und ich werde weitergeleitet
HTTP/1.1 200 OK\r\n
  Location: [host]/products?[q=...]\r\n

4. Gleich darauf wird Anfrage 2 "gesperrt" und ich werde zum Captcha geleitet
HTTP/1.1 302 Found\r\n
  Location: [host]/sorry/?continue=[host]/products%3F[q=...]aq%3Df\r\n

5. Es wird nicht Location aus Status 200 sondern 302 aufgerufen-> alles beginnt von vorn
GET /sorry/?continue=[host]/products%3F[q=...]aq%3Df HTTP/1.1\r\n

Ich hatte zwar nach dem Absenden des Formulars ein sleep eingebaut, jedoch hat es äußerst ungünstig den gesamten Ablauf blockiert, wodurch beide Anfragen trotzdem direkt hintereinander rausgingen.

Ich möchte mich noch einmal bei allen bedanken, denn letzten endes waren eure aussagen entscheidend dafür, dass ich den weg nicht verworfen, sondern noch einmal genau geschaut habe. Insbesondere die überlegungen zu Cookies haben mir geholfen die Abläufe ein bisschen besser zu verstehen.