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. Я не могу считать строку "Привет" после того, как я получу ответ (сторона клиента).

6
задан John Saunders 11 February 2010 в 19:17
поделиться

2 ответа

Возможно, установка типа контента перед фактической записью или очисткой потока помог бы.

3
ответ дан 17 December 2019 в 07:04
поделиться

Вы не установили ContentLength на сервере. Может быть, это поможет?

1
ответ дан 17 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: