18 Stimmen

Wie simulieren Browser HTTP POST-Anfrage und erfassen Ergebnis in C #

Nehmen wir an, wir haben eine Webseite mit einem Sucheingabeformular, das Daten per HTTP GET an den Server sendet. Das bedeutet, dass der Server die Suchdaten über Abfragezeichenfolgen erhält. Der Benutzer kann die URL sehen und kann diese Anfrage auch selbst initialisieren (über URL + Query-Strings).

Das wissen wir alle. Hier ist die Frage.

Was ist, wenn diese Webseite Daten per HTTP POST an den Server sendet? Wie kann der Benutzer diese Anfrage selbst initialisieren?

Nun, ich weiß, wie HTTP POST zu erfassen (das ist, warum Netzwerk-Sniffer sind für), aber wie kann ich diese HTTP POST-Anfrage von mir in einem C#-Code zu simulieren?

25voto

Darin Dimitrov Punkte 990883

Sie könnten einen Blick auf die WebClient Klasse. Sie ermöglicht es Ihnen, Daten an eine beliebige URL zu senden:

using (var client = new WebClient())
{
    var dataToPost = Encoding.Default.GetBytes("param1=value1&param2=value2");
    var result = client.UploadData("http://example.com", "POST", dataToPost);
    // do something with the result
}

Erzeugt die folgende Anfrage:

POST / HTTP/1.1
Host: example.com
Content-Length: 27
Expect: 100-continue
Connection: Keep-Alive

param1=value1&param2=value2

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X