成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS開發ASIHTTPRequest數據壓縮

移動開發 iOS
本文為大家介紹了iOS開發ASIHTTPRequest數據壓縮的內容,其中包括使用gzip來處理壓縮的響應數據,怎樣設置apache的mod_deflate來使用gzip壓縮數據,在ASIHTTPRequest中使用gzip,相應數據的實時解壓縮,使用gzip壓縮request數據等等內容。

使用gzip來處理壓縮的響應數據

從0.9版本開始,ASIHTTPRequest會提示服務器它可以接收gzip壓縮過的數據。許多web服務器可以在數據被發送之前壓縮這些數據——這可以加快下載速度減少流量使用,但會讓服務器的cpu(壓縮數據)和客戶端(解壓數據)付出代價。總的來說,只有特定的幾種數據會被壓縮——許多二進制格式的文件像jpeg,gif,png,swf和pdf已經壓縮過他們的數據了,所以向客戶端發送這些數據時不會進行gzip壓縮。文本文件例如網頁和xml文件會被壓縮,因為它們通常有大量的數據冗余。

怎樣設置apache的mod_deflate來使用gzip壓縮數據

apache 2.x以上版本已經配備了mod_deflate擴展,這使得apache可以透明地壓縮特定種類的數據。要開啟這個特性,你需要在apache的配置文件中啟用mod_deflate。并將mod_deflate命令添加到你的虛擬主機配置或者.htaccess文件中。

在ASIHTTPRequest中使用gzip

  1. - (IBAction)grabURL:(id)sender 
  2.   NSURL *url = [NSURL URLWithString:@"http://www.dreamingwish.com"]; 
  3.   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  4.   // 默認為YES, 你可以設定它為NO來禁用gzip壓縮 
  5.   [request setAllowCompressedResponse:YES]; 
  6.   [request startSynchronous]; 
  7.   BOOL *dataWasCompressed = [request isResponseCompressed]; // 響應是否被gzip壓縮過? 
  8.   NSData *compressedResponse = [request rawResponseData]; // 壓縮的數據 
  9.   NSData *uncompressedData = [request responseData]; // 解壓縮后的數據 
  10.   NSString *response = [request responseString]; // 解壓縮后的字符串 

當allowCompressedResponse 設置為YES時,ASIHTTPRequest將向request中增加一個Accept-Encoding頭,表示我們可以接收gzip壓縮過的數據。如果響應頭中包含一個Content-Encoding頭指明數據是壓縮過的,那么調用responseData 或者responseString 將會得到解壓縮后的數據。你也可以通過調用rawResponseData來獲得原始未壓縮的數據。

相應數據的實時解壓縮

默認情況下,ASIHTTPRequest會等到request完成時才解壓縮返回的數據。若設置request的shouldWaitToInflateCompressedResponses 屬性為NO,ASIHTTPRequest將會對收到的數據進行實時解壓縮。 在某些情況下,這會稍稍提升速度,因為數據可以在reqeust等待網絡數據時進行處理。

如果你需要對響應數據流進行流處理(例如XML和JSON解析),這個特性會很有用。如果啟用了這個選項,你可以通過實現代理函數request:didReceiveData:來將返回的網絡數據一點一點喂給解析器。

注意,如果shouldWaitToInflateCompressedResponses 被設置為NO,那么原始(未解壓)的數據會被拋棄。具體情況請查閱ASIHTTPRequest.h的代碼注釋。

使用gzip壓縮request數據

1.0.3版本的新特性就是gzip壓縮request數據。使用這個特性,你可以通過設置shouldCompressRequestBody 為YES來使你的程序壓縮POST/PUT的內容,默認值為NO。

apache的mod_deflate可以自動解壓縮gzip壓縮的請求體(通過合適的設置)。這個方法適用于CGI內容,但不適用于內容過濾器式的模塊(例如mod PHP),這種情況下,你就必須自己解壓縮數據。

ASIHTTPRequest 無法檢測一個服務器是否能接收壓縮過的請求體。當你確定服務器可以解壓縮gzip包時,再使用這個特性。

請避免對已經壓縮過的格式(例如jpeg/png/gif/pdf/swf)進行壓縮,你會發現壓縮后的數據比原數據更大。(夢維:因為壓縮包都有頭信息)

責任編輯:閆佳明 來源: dreamingwish
相關推薦

2013-07-21 18:22:59

iOS開發ASIHTTPRequ

2013-07-21 18:18:00

iOS開發ASIHttpRequ

2013-07-22 14:38:00

iOS開發ASIHTTPRequ

2013-07-21 18:27:15

iOS開發ASIHTTPRequ

2013-07-22 14:15:17

iOS開發ASIHTTPRequ

2013-07-22 14:33:15

iOS開發ASIHTTPRequ

2013-07-21 18:32:13

iOS開發ASIHTTPRequ

2013-07-22 14:25:29

iOS開發ASIHTTPRequ

2013-07-22 14:43:57

iOS開發ASIHTTPRequ

2013-07-21 18:09:21

iOS開發ASIHttpRequ創建和執行reques

2013-07-22 14:02:17

iOS開發ASIHTTPRequ

2013-07-22 13:48:55

iOS開發ASIHTTPRequ使用Cookie

2023-11-09 09:48:16

數據壓縮微服務

2013-03-13 09:53:50

SQL Server

2013-07-22 14:29:35

iOS開發ASIHTTPRequ

2013-07-22 14:10:26

iOS開發ASIHTTPRequ

2013-03-25 14:13:23

iOSASIHTTPRequ

2013-07-21 18:04:22

ASIHttpRequiOS開發

2018-06-19 09:00:00

2010-07-14 14:07:50

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品一区二区 | 亚洲精品乱码久久久久久按摩观 | 日韩欧美精品在线 | 亚洲精品白浆高清久久久久久 | a级片在线观看 | 日韩在线视频一区 | 五月婷婷激情 | 亚洲欧洲精品一区 | 久久久久久国产精品免费免费男同 | 国产在线观看一区二区三区 | 久久久91 | 日韩在线观看网站 | 成人日韩av| 久久成人精品视频 | 国产中文区二幕区2012 | 精品国产欧美一区二区三区成人 | 婷婷国产一区 | 亚洲视频一区二区三区 | 精精精精xxxx免费视频 | 亚洲欧美日韩电影 | 精品人伦一区二区三区蜜桃网站 | 久久999 | 在线观看三级av | 一本一道久久a久久精品综合蜜臀 | yeyeav| 亚洲一级视频在线 | 欧美一区二区三区电影 | 久久人人爽人人爽人人片av免费 | 一区二区在线看 | 国产精品久久一区 | 欧美日韩中文字幕在线 | 中国一级特黄真人毛片 | 色免费视频| 中文字幕在线一区 | 日韩专区中文字幕 | 国产小视频在线观看 | 国产精品日韩欧美一区二区三区 | 怡红院怡春院一级毛片 | 日本久久网站 | www亚洲成人| 九九热免费在线观看 |