Передача данных между приложением C # и веб-сервером - PullRequest
2 голосов
/ 09 октября 2011

При запуске мое приложение выполняет простой GET-запрос к веб-серверу. В зависимости от ответа от сервера приложению может потребоваться отправить еще один запрос на тот же веб-сервер, который должен содержать блок HTML-кода . Вопрос заключается в следующем: как сжать / минимизировать ответ (некоторый HTML-код), чтобы уменьшить пропускную способность, без необходимости использования каких-либо сторонних библиотек для моего приложения C # для распаковки полученных данных. Я думал только о кодировке base64 (которая не сжимает данные), есть ли более продуктивные способы?

Ответы [ 3 ]

2 голосов
/ 09 октября 2011

Ну, изначально у вас есть сжатие GZip в .NET.Кроме того, вы можете использовать другие библиотеки для сжатия.Кроме того, всегда существует собственная схема сжатия.

2 голосов
/ 09 октября 2011

Почему не стандартный gzip?Алгоритм находится в .net библиотеке.

1 голос
/ 09 октября 2011

Вы можете попросить сервер предоставить вам сжатые данные, если он их поддерживает:

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();

Полная информация здесь: http://www.west -wind.com / weblog / posts / 2007 / Jun / 29 / HttpWebRequest-and-GZip-Http-Responses

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...