開始時,我的應用程序向Web服務器發出一個簡單的GET請求。根據服務器的響應,應用程序可能需要向同一個Web服務器發送另一個請求,該響應必須包含一段html代碼。問題是:如何壓縮/縮小響應(一些html代碼)以減少帶寬,而不需要任何第三方庫供我的C#應用程序解壓縮接收到的數據。我只用了base64編碼(這不是壓縮數據),還有更多有效的方法嗎?在C#應用程序和Web服務器之間傳輸數據
2
A
回答
2
那麼,本質上你有在.NET中GZip compression。除此之外,您可以使用other libraries來進行壓縮。然後,總是制定你自己的壓縮方案。
2
爲什麼不是標準的gzip?算法在.net庫中。
1
您可以要求服務器給你壓縮數據,如果支持的話:
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
相關問題
- 1. 在C++應用程序和服務器之間傳輸數據
- 2. Web服務器和數據庫服務器之間的安全數據傳輸
- 3. iPhone應用程序和服務器之間的圖像傳輸
- 4. 移動應用和服務器之間的大數據傳輸
- 5. Web服務器,Web容器和應用程序服務器之間的區別
- 6. Web應用程序和C應用程序之間的通信?Web服務?
- 7. 在服務器和iOS應用程序之間同步數據
- 8. 服務器之間的數據傳輸
- 9. android應用程序和asp.net之間的數據傳輸C#
- 10. Web服務器,應用程序服務器和數據庫服務器之間的區別
- 11. 在C++(MFC)應用程序和C#之間傳遞數據
- 12. 在C#應用程序之間流式傳輸數據
- 13. 在客戶端應用程序和Web應用程序之間傳遞數據
- 14. 服務器和Web應用程序之間的API
- 15. android設備和web服務之間的數據傳輸
- 16. 應用程序服務器和Web服務器之間的區別?
- 17. 如何捕獲在Web服務器和WebService之間傳輸的實際數據
- 18. 將數據從ios應用程序傳遞到C#web服務
- 19. 在服務器應用程序之間共享數據
- 20. 移動應用程序和Web服務數據傳輸(WCF和JSON)
- 21. Java Web應用程序和C++服務器之間的套接字通信
- 22. 應用程序和媒體服務器之間的文件傳輸
- 23. 在驅動程序和Windows服務之間傳遞數據
- 24. 應用程序和網站之間的Android數據傳輸
- 25. 本地服務器和AWS服務器之間的數據傳輸
- 26. java web應用程序和web服務之間的線程間通信
- 27. 安全地在iPhone應用程序和Arduino服務器之間傳輸數據的方法
- 28. 從JavaScript應用程序到Rails服務器的數據傳輸
- 29. 在C#服務器進程和網站之間共享數據
- 30. C++應用程序和web應用程序之間的通信