IOS之同步請(qǐng)求卜范、異步請(qǐng)求衔统、GET請(qǐng)求、POST請(qǐng)求

1海雪、同步請(qǐng)求可以從因特網(wǎng)請(qǐng)求數(shù)據(jù)缰冤,一旦發(fā)送同步請(qǐng)求,程序?qū)⑼V褂脩艚换ピ海敝练?wù)器返回?cái)?shù)據(jù)完成棉浸,才可以進(jìn)行下一步操作

2、異步請(qǐng)求不會(huì)阻塞主線程刺彩,而會(huì)建立一個(gè)新的線程來操作迷郑,用戶發(fā)出異步請(qǐng)求后,依然可以對(duì)UI進(jìn)行操作创倔,程序可以繼續(xù)運(yùn)行

3嗡害、GET請(qǐng)求,將參數(shù)直接寫在訪問路徑上畦攘。操作簡單霸妹,不過容易被外界看到,安全性不高知押,地址最多255字節(jié)叹螟;

4鹃骂、POST請(qǐng)求,將參數(shù)放到body里面罢绽。POST請(qǐng)求操作相對(duì)復(fù)雜畏线,需要將參數(shù)和地址分開,不過安全性高良价,參數(shù)放在body里面寝殴,不易被捕獲。

1明垢、? ? 同步GET請(qǐng)求

//第一步蚣常,創(chuàng)建URL

NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];

//第二步,通過URL創(chuàng)建網(wǎng)絡(luò)請(qǐng)求

NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy ?timeoutInterval:10];

//NSURLRequest初始化方法第一個(gè)參數(shù):請(qǐng)求訪問路徑痊银,第二個(gè)參數(shù):緩存協(xié)議抵蚊,第三個(gè)參數(shù):網(wǎng)絡(luò)請(qǐng)求超時(shí)時(shí)間(秒)

其中緩存協(xié)議是個(gè)枚舉類型包含:

NSURLRequestUseProtocolCachePolicy(基礎(chǔ)策略)

NSURLRequestReloadIgnoringLocalCacheData(忽略本地緩存)

NSURLRequestReturnCacheDataElseLoad(首先使用緩存,如果沒有本地緩存曼验,才從原地址下載)

NSURLRequestReturnCacheDataDontLoad(使用本地緩存,從不下載粘姜,如果本地沒有緩存鬓照,則請(qǐng)求失敗,此策略多用于離線操作)

NSURLRequestReloadIgnoringLocalAndRemoteCacheData(無視任何緩存策略孤紧,無論是本地的還是遠(yuǎn)程的豺裆,總是從原地址重新下載)

NSURLRequestReloadRevalidatingCacheData(如果本地緩存是有效的則不下載,其他任何情況都從原地址重新下載)

//第三步号显,連接服務(wù)器

NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];

NSLog(@"%@",str);

2臭猜、同步POST請(qǐng)求

//第一步,創(chuàng)建URL

NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];

//第二步押蚤,創(chuàng)建請(qǐng)求

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

[request setHTTPMethod:@"POST"];//設(shè)置請(qǐng)求方式為POST蔑歌,默認(rèn)為GET

NSString *str = @"type=focus-c";//設(shè)置參數(shù)

NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:data];

//第三步,連接服務(wù)器

NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];

NSLog(@"%@",str1);

3揽碘、異步GET請(qǐng)求

//第一步次屠,創(chuàng)建url

NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];

//第二步,創(chuàng)建請(qǐng)求

NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

//第三步雳刺,連接服務(wù)器

NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

4劫灶、異步POST請(qǐng)求

//第一步,創(chuàng)建url

NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do"];

//第二步掖桦,創(chuàng)建請(qǐng)求

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

[request setHTTPMethod:@"POST"];

NSString *str = @"type=focus-c";

NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:data];

//第三步本昏,連接服務(wù)器

NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

5、異步請(qǐng)求的代理方法

//接收到服務(wù)器回應(yīng)的時(shí)候調(diào)用此方法

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

{

NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;

NSLog(@"%@",[res allHeaderFields]);

self.receiveData = [NSMutableData data];

}

//接收到服務(wù)器傳輸數(shù)據(jù)的時(shí)候調(diào)用枪汪,此方法根據(jù)數(shù)據(jù)大小執(zhí)行若干次

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

[self.receiveData appendData:data];

}

//數(shù)據(jù)傳完之后調(diào)用此方法

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];

NSLog(@"%@",receiveStr);

}

//網(wǎng)絡(luò)請(qǐng)求過程中涌穆,出現(xiàn)任何錯(cuò)誤(斷網(wǎng)怔昨,連接超時(shí)等)會(huì)進(jìn)入此方法

-(void)connection:(NSURLConnection *)connection?didFailWithError:(NSError *)error

{

NSLog(@"%@",[error localizedDescription]);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蒲犬,隨后出現(xiàn)的幾起案子朱监,更是在濱河造成了極大的恐慌,老刑警劉巖原叮,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赫编,死亡現(xiàn)場離奇詭異,居然都是意外死亡奋隶,警方通過查閱死者的電腦和手機(jī)擂送,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唯欣,“玉大人嘹吨,你說我怎么就攤上這事【城猓” “怎么了蟀拷?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萍聊。 經(jīng)常有香客問我问芬,道長,這世上最難降的妖魔是什么寿桨? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任此衅,我火速辦了婚禮,結(jié)果婚禮上亭螟,老公的妹妹穿的比我還像新娘挡鞍。我一直安慰自己,他們只是感情好预烙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布墨微。 她就那樣靜靜地躺著,像睡著了一般扁掸。 火紅的嫁衣襯著肌膚如雪欢嘿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天也糊,我揣著相機(jī)與錄音炼蹦,去河邊找鬼。 笑死狸剃,一個(gè)胖子當(dāng)著我的面吹牛掐隐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼虑省,長吁一口氣:“原來是場噩夢啊……” “哼匿刮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起探颈,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤熟丸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后伪节,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體光羞,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年怀大,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纱兑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡化借,死狀恐怖潜慎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蓖康,我是刑警寧澤铐炫,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站蒜焊,受9級(jí)特大地震影響倒信,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜山涡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一堤结、第九天 我趴在偏房一處隱蔽的房頂上張望唆迁。 院中可真熱鬧鸭丛,春花似錦、人聲如沸唐责。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼠哥。三九已至熟菲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朴恳,已是汗流浹背抄罕。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留于颖,地道東北人呆贿。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親做入。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冒晰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容