在C#应用程序和Web服务器之间传输数据
在启动时,我的应用程序向web服务器发出一个简单的GET web请求。根据服务器的响应,应用程序可能需要向同一web服务器发送另一个请求,该请求必须包含一块html代码。问题是:我如何压缩/缩小响应(一些html代码)以减少带宽,而不需要任何第三方库为我的C#App解压接收到的数据。我只考虑过base64编码(它不是压缩数据),还有其他更有效的方法吗?为什么没有标准的gzip?算法在.net库中。好吧,您本来就在.net中。除此之外,您还可以使用来进行压缩。然后,总是会制定您自己的压缩方案。如果服务器支持压缩数据,您可以要求服务器为您提供压缩数据:在C#应用程序和Web服务器之间传输数据,c#,webserver,C#,Webserver,在启动时,我的应用程序向web服务器发出一个简单的GET web请求。根据服务器的响应,应用程序可能需要向同一web服务器发送另一个请求,该请求必须包含一块html代码。问题是:我如何压缩/缩小响应(一些html代码)以减少带宽,而不需要任何第三方库为我的C#App解压接收到的数据。我只考虑过base64编码(它不是压缩数据),还有其他更有效的方法吗?为什么没有标准的gzip?算法在.net库中。好吧,您本来就在.net中。除此之外,您还可以使用来进行压缩。然后,总是会制定您自己的压缩方案。如果
var req = (HttpWebRequest)WebRequest.Create("http://your.server/url");
req.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
var webResponse = (HttpWebResponse)req.GetResponse();
var responseStream = webResponse.GetResponseStream();
if (webResponse.ContentEncoding.Contains("gzip", StringComparison.OrdinalIgnoreCase))
{
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
}
else if (WebResponse.ContentEncoding.ToLower().Contains("deflate"))
{
responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);
}
var reader = new StreamReader(responseStream, Encoding.Default);
string html = reader.ReadToEnd();
webResponse.Close();
responseStream.Close();
详情如下: