2010-02-11 7 views
6

Ich habe einen Client und einen Server.HttpWebRequest/HttpResponse: Wie Daten in der Antwort senden?

Auf der Client-Seite habe ich:

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(); 

Auf der Serverseite habe ich:

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(); 
} 

Der Client empfängt die Antwort mit der richtigen StatusCode. Obwohl, wenn ich (int)response.ContentLength; auf dem Client mache, bekomme ich 0. Ich kann die Zeichenfolge "Hallo" nicht lesen, nachdem ich die Antwort (Client-Seite) erhalte.

+1

Ich weiß, das ist ein alter Thread, Aber kann jemandem helfen. Versuchen Sie http://StackOverflow.com/questions/4088625/net-simplet-way-to-send-post-with-data-and-readse/19448979#19448979 – Murali

Antwort

3

Vielleicht würde das Einstellen des Inhaltstyps vor dem eigentlichen Schreiben oder Leeren des Streams helfen.

+0

Ich tat das, aber es gab eine Kopie/Vergangenheit Problem ... Also, funktioniert immer noch nicht mit dem Inhaltstyp. – user252816

1

Sie haben ContentLength nicht auf dem Server festgelegt. Vielleicht würde das helfen?

+0

Wie kann ich die ContentLength auf dem Server einstellen? – user252816

+0

'response.ContentLength = n;' funktioniert nicht? Wenn nicht, dann irre ich mich, weil 'ContentLength' dein Problem ist. –

Verwandte Themen