2010-02-11 21 views
6

Tengo un cliente y un servidor.HttpWebRequest/HttpResponse: ¿Cómo enviar datos en la respuesta?

En el lado del cliente que tengo:

HttpWebRequest request = 
    (HttpWebRequest)WebRequest.Create("http://localhost/fa/Default.aspx"); 
request.Method = "POST";     

byte[] data = Encoding.ASCII.GetBytes(GetSAMLRequestB64()); 

request.ContentType = "text/xml"; 
request.ContentLength = data.Length; 
Stream stream = request.GetRequestStream(); 
stream.Write(data, 0, data.Length); 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Stream responseStream = response.GetResponseStream(); 

En el lado del servidor que tengo:

public void ProcessRequest(HttpContext httpContext) 
{ 
    HttpResponse response = httpContext.Response;    
    response.Clear(); 
    response.BufferOutput = true; 
    response.StatusCode = 200; // HttpStatusCode.OK; 
    response.Write("Hello"); 
    response.ContentType = "text/xml"; 
    response.End(); 
} 

El cliente recibe la respuesta correcta con el StatusCode. Aunque si hago (int)response.ContentLength; en el cliente obtengo 0. No puedo leer la cadena "Hola" después de recibir la respuesta (del lado del cliente).

+1

Sé que este es un hilo viejo, pero puede ayudar a alguien. Pruebe http://stackoverflow.com/questions/4088625/net-simplest-way-to-send-post-with-data-and-read-response/19448979#19448979 – Murali

Respuesta

3

Quizás establecer el tipo de contenido antes de la escritura real o la descarga de la corriente ayudaría.

+0

Lo hice, sin embargo, había una copia/problema pasado ... Por lo tanto, todavía no funciona con el tipo de contenido. – user252816

1

No configuró ContentLength en el servidor. Tal vez eso ayudaría?

+0

¿cómo puedo configurar contentLength en el servidor? – user252816

+0

'response.ContentLength = n;' no funciona? Si no es así, entonces me equivoco acerca de que 'ContentLength' es tu problema. –

Cuestiones relacionadas