HTTP 응답을 지원하는 클라이언트에 대한 HTTP 응답을 압축하려고합니다. C# Webserver을 사용하고 있습니다.데이터를 생성하지 않는 WebHttpResponse의 GZipStream
IHttpClientContext context = (IHttpClientContext)sender;
IHttpRequest request = e.Request;
string responseBody = "This is some random text";
IHttpResponse response = request.CreateResponse(context);
using (StreamWriter writer = new StreamWriter(response.Body))
{
writer.WriteLine(responseBody);
writer.Flush();
response.Send();
}
위의 코드는 잘 작동 : 여기
는 표준 응답을 보내는 데 사용되는 코드입니다. 이제 아래에 gzip 지원을 추가했습니다. gzip 또는 사용자 정의 메소드를 지원하는 브라우저로 테스트하면 빈 문자열이 리턴됩니다. 내가 뭔가 단순한 누락 확신 해요,하지만 난 그냥 그것을 찾을 수 없습니다 ...IHttpClientContext context = (IHttpClientContext)sender;
IHttpRequest request = e.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
string responseBody = "This is some random text";
IHttpResponse response = request.CreateResponse(context);
if (acceptEncoding != null && acceptEncoding.Contains("gzip"))
{
byte[] bytes = ASCIIEncoding.ASCII.GetBytes(responseBody);
response.AddHeader("Content-Encoding", "gzip");
using (GZipStream writer = new GZipStream(response.Body, CompressionMode.Compress))
{
writer.Write(bytes, 0, bytes.Length);
writer.Flush();
response.Send();
}
}
else
{
using (StreamWriter writer = new StreamWriter(response.Body))
{
writer.WriteLine(responseBody);
writer.Flush();
response.Send();
}
}
? 사용중인 인터페이스를 인식하지 못합니다. –
죄송합니다. 제 질문을 업데이트했습니다. 그것은 C# 웹 서버 : http://webserver.codeplex.com/ –