W przypadku żądań POST przy użyciu HttpWebRequest, kiedy piszę w strumieniu żądań, w którym momencie dane są wysyłane? Czy to wtedy, gdy zamykam strumień żądań, czy gdy wywołuję GetResponse? Czy wymagane jest wywołanie GetResponse?

Dokumentacja .net nie wydaje się jasno określać, co się naprawdę dzieje

Oto kod, który mnie ciekawi:

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;

Dzięki!

9
rysama 25 wrzesień 2012, 09:48

2 odpowiedzi

Najlepsza odpowiedź

Tak, wywołanie GetResponse jest konieczne, nie tylko dla żądań POST, ale także dla żądań GET, HEAD. Żądanie / dane są wysyłane w momencie, gdy dzwonisz GetResponse.

3
Coder 25 wrzesień 2012, 10:02

Uruchom sniffera i ustaw punkt przerwania na requestStream.Close();, a zobaczysz, że żądanie jest wykonywane, gdy GetResponse() sprawdził.

2
tsionyx 25 wrzesień 2012, 10:02