HttpWebRequest / HttpResponse: Как отправить данные в ответ? - PullRequest
6 голосов
/ 11 февраля 2010

У меня есть клиент и сервер.

На стороне клиента у меня есть:

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» после получения ответа (на стороне клиента)

Ответы [ 2 ]

3 голосов
/ 11 февраля 2010

Возможно, поможет установка типа контента до фактической записи или очистки потока.

1 голос
/ 11 февраля 2010

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

...