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

iOS開發(fā)ASIHTTPRequest下載數(shù)據(jù)

移動開發(fā) iOS
本文為大家介紹了iOS開發(fā)ASIHTTPRequest下載數(shù)據(jù)的內(nèi)容,其中包括設(shè)定將服務(wù)器響應(yīng)數(shù)據(jù)直接下載到文件,處理收到的服務(wù)器響應(yīng)數(shù)據(jù),PUT請求、獲取HTTP狀態(tài)碼,讀取響應(yīng)頭,處理文本編碼,處理重定向等等內(nèi)容。

本文為大家介紹了iOS開發(fā)ASIHTTPRequest下載數(shù)據(jù)的內(nèi)容,其中包括設(shè)定將服務(wù)器響應(yīng)數(shù)據(jù)直接下載到文件,處理收到的服務(wù)器響應(yīng)數(shù)據(jù),PUT請求、獲取HTTP狀態(tài)碼,讀取響應(yīng)頭,處理文本編碼,處理重定向等等內(nèi)容。

將服務(wù)器響應(yīng)數(shù)據(jù)直接下載到文件

如果你請求的資源很大,你可以直接將數(shù)據(jù)下載到文件中來節(jié)省內(nèi)存。此時,ASIHTTPRequest將不會一次將返回數(shù)據(jù)全部保持在內(nèi)存中。

當(dāng)我們把數(shù)據(jù)下載到downloadDestinationPath時,數(shù)據(jù)將首先被存在臨時文件中。此時文件的路徑名存儲在 temporaryFileDownloadPath中(夢維:如果不設(shè)置這個值,會自動生成一個文件名,在模擬器中,文件被創(chuàng)建在$TMPDIR中)。

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.txt"]; 

當(dāng)request完成時,會發(fā)生下面兩件事之一:

如果數(shù)據(jù)是被壓縮過(gzip)的,那么這個壓縮過的文件將被解壓到downloadDestinationPath,臨時文件會被刪除。

如果數(shù)據(jù)未被壓縮,那么這個文件將被移動到downloadDestinationPath,沖突解決方式是:覆蓋已存在的文件。

注意:如果服務(wù)器響應(yīng)數(shù)據(jù)為空,那么文件是不會被創(chuàng)建的。如果你的返回數(shù)據(jù)可能為空,那么你應(yīng)該先檢查下載文件是否存在,再對文件進行操作。

處理收到的服務(wù)器響應(yīng)數(shù)據(jù)

如果你想處理服務(wù)器響應(yīng)的數(shù)據(jù)(例如,你想使用流解析器對正在下載的數(shù)據(jù)流進行處理),你應(yīng)該實現(xiàn)代理函數(shù) request:didReceiveData:。注意如果你這么做了,ASIHTTPRequest將不會填充responseData到內(nèi)存,也不會將數(shù)據(jù)寫入文件(downloadDestinationPath )——你必須自己搞定這兩件事(之一)。 

獲取HTTP狀態(tài)碼

ASIHTTPRequest并不對HTTP狀態(tài)碼做任何處理(除了重定向和授權(quán)狀態(tài)碼,下面會介紹到),所以你必須自己檢查狀態(tài)值并正確處理。

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request startSynchronous]; 
  3. int statusCode = [request responseStatusCode]; 
  4. NSString *statusMessage = [request responseStatusMessage];

讀取響應(yīng)頭

  1. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  2. [request startSynchronous]; 
  3. NSString *poweredBy = [[request responseHeaders] objectForKey:@"X-Powered-By"]; 
  4. NSString *contentType = [[request responseHeaders] objectForKey:@"Content-Type"]; 

處理文本編碼

ASIHTTPRequest會試圖讀取返回數(shù)據(jù)的編碼信息(Content-Type頭信息)。如果它發(fā)現(xiàn)了編碼信息,它會將編碼信息設(shè)定為合適的 NSStringEncoding.如果它沒有找到編碼信息,它會將編碼設(shè)定為默認編碼(NSISOLatin1StringEncoding)。

當(dāng)你調(diào)用[request responseString],ASIHTTPRequest會嘗試以responseEncoding將返回的Data轉(zhuǎn)換為NSString。

處理重定向

當(dāng)遇到以下HTTP狀態(tài)碼之一時,ASIHTTPRequest會自動重定向到新的URL:

  • 301 Moved Permanently
  • 302 Found
  • 303 See Other

當(dāng)發(fā)生重定向時,響應(yīng)數(shù)據(jù)的值(responseHeaders,responseCookies,responseData,responseString等等)將會映射為最終地址的相應(yīng)返回數(shù)據(jù)。

當(dāng)URL發(fā)生循環(huán)重定向時,設(shè)置在這個URL上的cookie將被儲存到全局域中,并在適當(dāng)?shù)臅r候隨重定向的請求發(fā)送到服務(wù)器。

Cookies set on any of the urls encountered during a redirection cycle will be stored in the global cookie store, and will be represented to the server on the redirected request when appropriate.

你可以關(guān)閉自動重定向:將shouldRedirect設(shè)置為NO。

默認情況下,自動重定向會使用GET請求(請求體為空)。這種行為符合大多數(shù)瀏覽器的行為,但是HTTP spec規(guī)定301和302重定向必須使用原有方法。

要對301、302重定向使用原方法(包含請求體),在發(fā)起請求之前,設(shè)置shouldUseRFC2616RedirectBehaviour 為YES。

責(zé)任編輯:閆佳明 來源: dreamingwish
相關(guān)推薦

2013-07-21 18:18:00

iOS開發(fā)ASIHttpRequ

2013-07-22 14:02:17

iOS開發(fā)ASIHTTPRequ

2013-07-22 13:54:32

iOS開發(fā)ASIHTTPRequ

2013-07-21 18:27:15

iOS開發(fā)ASIHTTPRequ

2013-07-22 14:38:00

iOS開發(fā)ASIHTTPRequ

2013-07-22 14:25:29

iOS開發(fā)ASIHTTPRequ

2013-07-22 14:43:57

iOS開發(fā)ASIHTTPRequ

2013-07-22 14:15:17

iOS開發(fā)ASIHTTPRequ

2013-07-22 14:33:15

iOS開發(fā)ASIHTTPRequ

2013-07-21 18:32:13

iOS開發(fā)ASIHTTPRequ

2013-07-22 13:48:55

iOS開發(fā)ASIHTTPRequ使用Cookie

2013-07-21 18:09:21

iOS開發(fā)ASIHttpRequ創(chuàng)建和執(zhí)行reques

2013-07-22 14:10:26

iOS開發(fā)ASIHTTPRequ

2013-07-21 18:04:22

ASIHttpRequiOS開發(fā)

2013-07-22 14:29:35

iOS開發(fā)ASIHTTPRequ

2013-03-25 14:13:23

iOSASIHTTPRequ

2011-08-22 10:06:38

IOS開發(fā)ASIHTTPRequHTTP 請求

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-12 13:35:23

iPhone文件流ASIHTTPRequ

2013-07-22 14:47:56

iOS開發(fā)iOS5中ASIHtt
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产伦一区二区三区久久 | 国产精品国产三级国产aⅴ中文 | 在线免费观看欧美 | 久久亚洲综合 | 在线一区| 91精品福利 | 懂色tv | 午夜理伦三级理论三级在线观看 | 中文字幕av在线一二三区 | 成年人精品视频在线观看 | 亚洲逼院 | 美女视频一区二区三区 | 欧美日本在线 | 欧美a区| 亚洲视频在线一区 | 精品在线一区二区三区 | 国产黄色精品在线观看 | 热久久久 | 在线观看视频91 | 成人黄视频在线观看 | 欧美一级片在线播放 | 99re99| 欧美专区在线 | 国产一级淫片a直接免费看 免费a网站 | 雨宫琴音一区二区在线 | 颜色网站在线观看 | 午夜电影一区 | 日韩电影中文字幕 | 国产成人久久精品一区二区三区 | 成人在线视频一区 | 一级片免费视频 | av天天看 | 日本高清aⅴ毛片免费 | 久久大陆 | 午夜专区| 天天影视亚洲综合网 | 国产亚洲二区 | 欧美精品一区二区三区在线播放 | 99热在线播放 | 99精品99| 欧美日本在线观看 |