Senden von POST-Daten mit C#
Dies ist die Methode, die ich versuche zu verwenden, zum senden von POST-Daten an eine URL und zurück bringen seine Antwort:
public string sendPOST(string URL, string postData)
{
byte[] byteArray;
Stream webpageStream;
StreamReader webpageReader;
String webpageContent;
byteArray = Encoding.UTF8.GetBytes(postData);
_webRequest = WebRequest.Create(URL);
_webRequest.Method = "POST";
_webRequest.ContentType = "application/x-www-form-urlencoded";
_webRequest.ContentLength = byteArray.Length;
webpageStream = _webRequest.GetResponse().GetResponseStream();
webpageStream.Write(byteArray, 0, byteArray.Length);
webpageStream.Close();
webpageReader = new StreamReader(webpageStream);
webpageContent = webpageReader.ReadToEnd();
return webpageContent;
}
Ich habe eine Menge von diesem code aus der MSDN-Seite, damit ich weiß, ich bin grob auf der richtigen Spur... aber wenn ich die Methode aufrufen mit:
string test = webHelper.sendPOST("http://google.com", "var=1");
MessageBox.Show(test);
Die Anwendung stürzt einfach ab. Ich habe gedebuggt und der Methode, soweit ich sehen kann, der code läuft gut, bis auf diese Zeile:
webpageStream = _webRequest.GetResponse().GetResponseStream();
Ich habe versucht, wickeln Sie es in einem try-block aber keine Ausnahmen geworfen werden bei allen.
Hat jemand genug Erfahrung mit web-Anfragen, um mir zu helfen?
Vielen Dank 🙂
InformationsquelleAutor Wen | 2011-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Merke ich, dies ist eine alte Frage, aber ich dachte, ich würde eine Antwort mit der richtigen Verwendung von using-Anweisungen, so dass das schließen von verbindungen, ohne die Notwendigkeit der Berufung auf "Schließen". Auch die webrequest können deklariert werden im Rahmen der SendPost Methode.
Dies ist auch nach dieser Antwort https://stackoverflow.com/a/336420/453798
Hoffe, das hilft
InformationsquelleAutor Geek
Haben Sie ein Logik-Fehler in deinem code:
Bist du schließen des Streams, dann versuchen zu Lesen. Sobald ein stream geschlossen ist, ist es effektiv tot.
Mehr grundlegende problem ist, dass du versuchst zu schreiben Sie Ihre Anfrage auf die Antwort, die ist nicht nur unsinnig, sondern auch unmöglich! Was Sie wollen zu tun ist, schreiben die Anfrage stream, dann bekommen Sie die Antwort, wie diese:
InformationsquelleAutor Adam Robinson