У меня есть клиент и сервер.
На стороне клиента я имею:
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. Я не могу считать строку "Привет" после того, как я получу ответ (сторона клиента).
Возможно, установка типа контента перед фактической записью или очисткой потока помог бы.
Вы не установили ContentLength на сервере. Может быть, это поможет?