自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS開發(fā)ASIHTTPRequest直接讀取磁盤數(shù)據(jù)流請(qǐng)求體

移動(dòng)開發(fā) iOS
本文為大家介紹了iOS開發(fā)ASIHTTPRequest直接讀取磁盤數(shù)據(jù)流的請(qǐng)求體的內(nèi)容,其中包括ASIFormDataRequests,普通ASIHTTPRequest等等內(nèi)容。

本文為大家介紹了iOS開發(fā)ASIHTTPRequest直接讀取磁盤數(shù)據(jù)流的請(qǐng)求體的內(nèi)容,其中包括ASIFormDataRequests,普通ASIHTTPRequest等等內(nèi)容。

從0.96版本開始,ASIHTTPRequest可以使用磁盤上的數(shù)據(jù)來(lái)作為請(qǐng)求體。這意味著不需要將文件完全讀入內(nèi)存中,這就避免的當(dāng)使用大文件時(shí)的嚴(yán)重內(nèi)存消耗。使用這個(gè)特性的方法有好幾種:ASIFormDataRequests和普通ASIHTTPRequest等等,下面來(lái)具體介紹。

ASIFormDataRequests

當(dāng)使用setFile:forKey:時(shí),ASIFormDataRequests自動(dòng)使用這個(gè)特性。request將會(huì)創(chuàng)建一個(gè)包含整個(gè)post體的臨時(shí)文件。文件會(huì)一點(diǎn)一點(diǎn)寫入post體。這樣的request是由 CFReadStreamCreateForStreamedHTTPRequest創(chuàng)建的,它使用文件讀取流來(lái)作為資源。

  1. NSURL *url = [NSURL URLWithString:@"http://www.dreamingwish.com/"]; 
  2. ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
  3. [request setPostValue:@"foo" forKey:@"post_var"]; 
  4. [request setFile:@"/Users/ben/Desktop/bigfile.txt" forKey:@"file"]; 
  5. [request startSynchronous];

普通ASIHTTPRequest

如果你明白自己的request體會(huì)很大,那么為這個(gè)request設(shè)置流式讀取模式。

  1. [request setShouldStreamPostDataFromDisk:YES]; 

下面的例子中,我們將一個(gè)NSData對(duì)象添加到post體。這有兩個(gè)方法:從內(nèi)存中添加(appendPostData:),或者從文件中添加(appendPostDataFromFile:);

  1. NSURL *url = [NSURL URLWithString:@"http://www.dreamingwish.com/"]; 
  2. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  3. [request setShouldStreamPostDataFromDisk:YES]; 
  4. [request appendPostData:myBigNSData]; 
  5. [request appendPostDataFromFile:@"/Users/ben/Desktop/bigfile.txt"]; 
  6. [request startSynchronous]; 

這個(gè)例子中,我們想直接PUT一個(gè)大文件。我們得自己設(shè)置setPostBodyFilePath ,ASIHTTPRequest將使用這個(gè)文件來(lái)作為post體。

  1. NSURL *url = [NSURL URLWithString:@"http://www.dreamingwish.com"]; 
  2. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  3. [request setRequestMethod:@"PUT"]; 
  4. [request setPostBodyFilePath:@"/Users/ben/Desktop/another-big-one.txt"]; 
  5. [request setShouldStreamPostDataFromDisk:YES]; 
  6. [request startSynchronous]; 

IMPORTANT:切勿對(duì)使用上述函數(shù)的request使用setPostBody——他們是互斥的。只有在你要自己建立request的請(qǐng)求體,并且還準(zhǔn)備在內(nèi)存中保持這個(gè)請(qǐng)求體時(shí),才應(yīng)該使用setPostBody。

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

2013-07-21 18:18:00

iOS開發(fā)ASIHttpRequ

2013-07-21 18:22:59

iOS開發(fā)ASIHTTPRequ

2013-07-22 13:54:32

iOS開發(fā)ASIHTTPRequ

2011-08-22 10:06:38

IOS開發(fā)ASIHTTPRequHTTP 請(qǐng)求

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

2011-08-12 13:35:23

iPhone文件流ASIHTTPRequ

2013-07-22 13:48:55

iOS開發(fā)ASIHTTPRequ使用Cookie

2013-07-22 14:02:17

iOS開發(fā)ASIHTTPRequ

2013-07-21 18:09:21

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

2013-07-21 18:04:22

ASIHttpRequiOS開發(fā)

2013-07-22 14:29:35

iOS開發(fā)ASIHTTPRequ

2013-03-25 14:13:23

iOSASIHTTPRequ

2009-08-19 10:41:12

Java輸入數(shù)據(jù)流

2011-12-14 15:57:13

javanio
點(diǎn)贊
收藏

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