HttpWebRequest / HttpResponse:如何在响应中发送数据?

我有一个客户端和一个服务器。

在客户端我有:

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

在服务器端我有:

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

客户端使用正确的StatusCode接收响应。 虽然,如果我做(int)response.ContentLength; 在客户端我得到0.我收到响应(客户端)后,我无法读取字符串“Hello”。

也许在实际写入或刷新流之前设置内容类型会有所帮助。

您没有在服务器上设置ContentLength。 也许这会有所帮助?