6

クライアントとサーバーがあります。

クライアント側には次のものがあります。

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」を読み取ることができません(クライアント側)。

4

2 に答える 2

3

おそらく、実際の書き込みまたはストリームのフラッシュの前にコンテンツタイプを設定すると役立つでしょう。

于 2010-02-11T19:12:00.660 に答える
1

サーバーにContentLengthを設定していません。多分それは助けになるでしょうか?

于 2010-02-11T19:12:09.457 に答える