automatisches senden eines Formulars auf eine asp.net Seite
Möchte ich einen Antrag stellen (in .Net), und füllt ein Formular übermittelt (in einem asp.net website).
Diese Anwendungen sollten diese Seite Lesen, suchen Sie die Felder (Eingänge), Auszug name/id der Felder will ich füllen Sie aus und senden die Seite an den server.
Ich will nicht eine app, die enthält ein webbrowser-Steuerelement zu automatisieren und die navigation auf der es!
Was ich habe: ich habe den Teil, dass die download-html, ich habe den Teil, der Sie findet, Felder und extrahieren Ihre Namen/ids.
Was ich brauche: Eine Möglichkeit, das Formular zu senden an den server (POST, nicht ERHALTEN).
Auf der html-Code der Seite die Einsendung erfolgt per javascript, so etwas wie dieses:
javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", true, "", "", false, false))
Ist die Frage: wie reicht man in diesem Fall?
- Ich würde stattdessen die HttpWebRequest - Klasse zum abrufen und bereitstellen von Daten. codeproject.com/Articles/6554/...
- Ady: wissen Sie, watin.org.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
HttpWebRequest
/HttpWebResponse
Objekte zum senden/empfangen von HTTP-Anfragen an einen server. Wenn Sie bekommen die Reaktion, suchen Sie für die verschiedenenINPUT
Felder, die Sie ändern möchten, und erstellen Sie eine POST-Anforderung Datenblock mit den verschiedenen Bereichen, wiefirstname=Joe&lastname=Doe&...
dann senden Sie diese als POST-reqeust. Sie müssen auch eine richtige setzen von Headern zu emulieren einen echten browser sendet die Anfrage, die Seite ansonsten kann sich weigern, zu behandeln, es richtig.
Fiddler können Sie zuerst navigieren Sie zu der Website, und speichern Sie die Anforderungen in Firefox und verwenden Sie dann Informationen aus den Anforderungen zum Aufbau Ihrer
HttpWebRequest
Objekte.HttpWebRequest
funktioniert in beide synchrone und asynchrone Modi, so können Sie entweder herunterladen eine Seite mit ein paar Zeilen code, oder Sie können die gesamte download-Prozess.UserAgent
können nicht Hinzugefügt werden als header -HttpWebRequest
hat einen UserAgent-string-Eigenschaft, die Sie festlegen müssen.Können Sie nur Einreichen, die das javascript:
Können Sie stellen Sie javascript nach dem laden der Seite einfach das Formular abschicken.
Vorausgesetzt, Sie müssen nur ein Formular auf der Seite, sonst kann man den Namen des Formulars, in Anführungszeichen innerhalb der
forms[]
Klammern.Bin ich zu Recht sagen, dass die Seite mit dem Formular gehört nicht auf Ihre website, und dass Sie Lesen, einige form auf einer externen Website?
Wenn Sie alle Felder ausgefüllt haben, können Sie nicht Lesen auch die 'action' - Attribut für das form-tag und führen Sie eine POST an der gleichen Stelle, mit der alle Schlüssel/Werte, die Sie bereits bekommen haben?
Können Sie
HttpWebRequest
dazu in server-side-code und schicken die POST-Daten, die Art und Weise.http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx