2012-09-25 9 views
8

Bei POST-Anfragen mit HttpWebRequest, wann schreibe ich in einen Anfrage-Stream, an welchem ​​Punkt werden die Daten gesendet? Ist es, wenn ich den Anfrage-Stream schließe oder wenn ich GetResponse anrufe? Ist der GetResponse-Aufruf erforderlich? Hier ist der Code, den ich bin neugierig aufIst HttpWebRequest.GetResponse erforderlich, um einen POST abzuschließen?

Die .net-Dokumentation scheint nicht sehr klar darüber zu sein, was wirklich

passiert:

HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest; 
request.Method = "POST"; 
request.ContentLength = jsonData.Length; 
request.ContentType = "application/json"; 

Stream requestStream = request.GetRequestStream(); 

requestStream.Write(jsonData, 0, jsonData.Length); 

requestStream.Close(); 

var response = request.GetResponse() as HttpWebResponse; 

Dank!

+0

Sie müssen die Antwort erhalten * auf jeden Fall * um den Statuscode zu lesen und herauszufinden, ob Ihr 'POST' vom Server akzeptiert oder abgelehnt wurde ... –

Antwort

2

Ja, GetResponse Aufruf ist muss, nicht nur für POST-Anfrage, sondern für GET, HEAD Anfragen auch. Anfrage/Daten werden an dem Punkt gesendet, an dem Sie GetResponse anrufen.

+0

es ist nicht wahr, ich erlebe die Anfrage direkt danach gesendet werden Ich schreibe die Daten in den Stream, die GetResponse ist auskommentiert und ich bin in der Lage, die aufgerufene Methode zu debuggen. Ich bin völlig verzweifelt ... –

1

Starten Sie den Sniffer und setzen Sie den Haltepunkt auf Ihrem requestStream.Close(); und Sie werden sehen, dass diese Anfrage gestellt wird, wenn GetResponse() aufgerufen wird.

Verwandte Themen