2012-09-25 23 views
8

Para solicitudes POST usando HttpWebRequest, cuando escribo en una secuencia de solicitud, ¿en qué punto se envían los datos? ¿Es cuando cierro el flujo de solicitud o cuando llamo a GetResponse? ¿Es necesaria la llamada GetResponse?¿Se requiere HttpWebRequest.GetResponse para completar un POST?

la documentación de .NET no parece ser muy claro acerca de lo que realmente está sucediendo

Aquí está el código que tengo curiosidad acerca de:

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; 

Gracias!

+0

Deberá obtener la respuesta * de todos modos * para leer el código de estado y determinar si su 'POST' fue aceptado o rechazado por el servidor ... –

Respuesta

2

Sí, la llamada GetResponse es imprescindible, no solo para solicitudes POST, sino también para solicitudes GET, HEAD. La solicitud/datos se envían en el momento en que llamas al GetResponse.

+0

no es cierto, experimento la solicitud que se enviará inmediatamente después escribiendo los datos en su flujo, el GetResponse está comentado y puedo depurar el método de llamada remota. Estoy completamente desesperado ... –

1

Inicie el sniffer y establezca el punto de interrupción en su requestStream.Close(); y verá que se realiza la solicitud cuando GetResponse() llamó.

Cuestiones relacionadas