我正在使用客户端发出http
请求HttpWebRequest
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestString);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
request.Method = "GET";
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
public void GetResponseCallback(IAsyncResult asynchronousResult)
{
HttpWebResponse response = null;
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Console.WriteLine(response.Headers["Content-Encoding"]);
if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Moved)
{
Stream inputStream = response.GetResponseStream();
StreamReader stream = new StreamReader(inputStream);
string responseString = stream.ReadToEnd();
}
}
Apache
设置gzip
压缩已启用并正常工作,因为当从 chrome 浏览器向相同的请求发出请求时,我url
可以content-encoding
在响应标头中看到。请参阅随附的屏幕截图。
但是当我使用上面提供的代码Content-Encoding
键发出相同的请求时,标题中存在但它的值是空字符串。
为什么content-encoding
我的响应标头中缺少值?这是响应标头字符串
Headers = {Connection: keep-alive Vary: Accept-Encoding Content-Encoding: Access-Control-Allow-Origin: * Content-Length: 36954 Content-Type: text/html; charset=UTF-8 Date: Fri, 18 Sep 2020 11:31:25 GMT Server: nginx/1.10.2 X-Powered-By: PHP/5.3.3 }