NSURLConnection(現(xiàn)在已經(jīng)不用涉枫,僅作為了解)

NSURLConnection(現(xiàn)在已經(jīng)不用探越,僅作為了解)

  • NSURL:請(qǐng)求地址

  • NSURLRequest:一個(gè)NSURLRequest對(duì)象就代表一個(gè)請(qǐng)求狡赐,包含以下內(nèi)容:

    • 一個(gè)NSURL對(duì)象
    • 請(qǐng)求方法、請(qǐng)求頭钦幔、請(qǐng)求體
    • 請(qǐng)求超時(shí)等等
  • NSMutableRequest:NSURLRequest的子類

  • NSURLConnection:

    • 負(fù)責(zé)發(fā)送請(qǐng)求枕屉,簡(jiǎn)歷客服端和服務(wù)器的鏈接
    • 發(fā)送數(shù)據(jù)給服務(wù)器,并收集來自服務(wù)器的響應(yīng)數(shù)據(jù)
  • 使用NSURLConnnection發(fā)送請(qǐng)求的步驟:

    • 創(chuàng)建一個(gè)URL對(duì)象鲤氢,設(shè)置請(qǐng)求路徑
    • 傳入NSURL創(chuàng)建一個(gè)NSURLRequest對(duì)象搀擂,設(shè)置請(qǐng)求頭和請(qǐng)求體
    • 使用NSURLConnection發(fā)送請(qǐng)求
  • 默認(rèn)發(fā)送的都是GET

發(fā)送同步請(qǐng)求
// 設(shè)置url
NSURL *url = [NSURL URLWithString:@"http://www.eyee.com"];
// 創(chuàng)建請(qǐng)求對(duì)象
NSURLRequest *request  = [NSURLRequest requestWithURL:url];

// 發(fā)送請(qǐng)求
// sendSynchronousRequest阻塞式方法,需要等待服務(wù)器返回?cái)?shù)據(jù)
NSHTTPURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

// 解析服務(wù)器返回的數(shù)據(jù)(解析成字符串)
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// 獲取所有的返回頭
response.allHeaderFields;
發(fā)送異步請(qǐng)求-block
// 設(shè)置url
NSURL *url = [NSURL URLWithString:@"http://www.eyee.com"];
// 創(chuàng)建請(qǐng)求對(duì)象
NSURLRequest *request  = [NSURLRequest requestWithURL:url];

/**
 發(fā)送請(qǐng)求
 @param request 請(qǐng)求對(duì)象
 @param queue 處理block的隊(duì)列
 */
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
    // 請(qǐng)求完畢會(huì)來到這個(gè)block
    // response:返回頭
    // data:返回的數(shù)據(jù)
    // connectionError:錯(cuò)誤信息
}];
發(fā)送異步請(qǐng)求-代理
  • 需要遵守協(xié)議NSURLConnectionDataDelegate
// 設(shè)置url
NSURL *url = [NSURL URLWithString:@"http://www.eyee.com"];
// 創(chuàng)建請(qǐng)求對(duì)象
NSURLRequest *request  = [NSURLRequest requestWithURL:url];

// 創(chuàng)建連接對(duì)象
// 創(chuàng)建完畢后卷玉,自動(dòng)發(fā)送異步請(qǐng)求
[[NSURLConnection alloc] initWithRequest:request delegate:self];

// 創(chuàng)建完畢后哨颂,自動(dòng)發(fā)送異步請(qǐng)求
[NSURLConnection connectionWithRequest:request delegate:self];

// startImmediately == YES 自動(dòng)發(fā)送異步請(qǐng)求
// startImmediately == NO  需要手動(dòng)發(fā)送
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
// 發(fā)送請(qǐng)求
[conn start];

// 取消請(qǐng)求
[conn cancel];


// 下面是代理方法
/**
 接收到服務(wù)端響應(yīng)
 */
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{

}
/**
 接收到服務(wù)器的數(shù)據(jù)
 如果數(shù)據(jù)量大,這個(gè)方法會(huì)被調(diào)用多次
 */
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    
}
/**
 服務(wù)器數(shù)據(jù)接收完畢
 */
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{

}
/**
 請(qǐng)求失敗
 */
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{

}
POST請(qǐng)求
// 設(shè)置url
NSURL *url = [NSURL URLWithString:@"http://www.eyee.com"];
// 創(chuàng)建請(qǐng)求對(duì)象
NSMutableURLRequest *request  = [NSMutableURLRequest requestWithURL:url];

// 更改請(qǐng)求方法
request.HTTPMethod = @"POST";

// 設(shè)置請(qǐng)求提
request.HTTPBody = [@"username=123&pwd=123" dataUsingEncoding:NSUTF8StringEncoding];
// 設(shè)置超時(shí)
request.timeoutInterval = 5;

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
    if(connectionError){
        // 有錯(cuò)誤
    }else{
        // 沒有錯(cuò)誤
    }
}];
請(qǐng)求地址中有中文
  • stringByAddingPercentEscapesUsingEncoding
// 將中文URL進(jìn)行轉(zhuǎn)碼
NSString *urlStr = @"http://www.eyee.com/login2?username=大牛&pwd=123"
 urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末相种,一起剝皮案震驚了整個(gè)濱河市威恼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寝并,老刑警劉巖箫措,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異食茎,居然都是意外死亡蒂破,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門别渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來附迷,“玉大人,你說我怎么就攤上這事哎媚±” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵拨与,是天一觀的道長(zhǎng)稻据。 經(jīng)常有香客問我,道長(zhǎng)买喧,這世上最難降的妖魔是什么捻悯? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮淤毛,結(jié)果婚禮上今缚,老公的妹妹穿的比我還像新娘。我一直安慰自己低淡,他們只是感情好姓言,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布瞬项。 她就那樣靜靜地躺著,像睡著了一般何荚。 火紅的嫁衣襯著肌膚如雪囱淋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天餐塘,我揣著相機(jī)與錄音妥衣,去河邊找鬼。 笑死唠倦,一個(gè)胖子當(dāng)著我的面吹牛称鳞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稠鼻,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼冈止,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了候齿?” 一聲冷哼從身側(cè)響起熙暴,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慌盯,沒想到半個(gè)月后周霉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亚皂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年俱箱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灭必。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狞谱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出禁漓,到底是詐尸還是另有隱情跟衅,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布播歼,位于F島的核電站伶跷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秘狞。R本人自食惡果不足惜叭莫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烁试。 院中可真熱鬧雇初,春花似錦、人聲如沸廓潜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辩蛋。三九已至呻畸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悼院,已是汗流浹背伤为。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留据途,地道東北人绞愚。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像颖医,于是被迫代替她去往敵國(guó)和親位衩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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

  • 常用類 NSURL:請(qǐng)求地址 NSURLRequest:一個(gè)NSURLRequest對(duì)象就代表一個(gè)請(qǐng)求熔萧,它包含的信...
    JonesCxy閱讀 993評(píng)論 0 1
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開發(fā)糖驴,例如說新浪微博、微信等佛致,這些應(yīng)用本身可...
    lichengjin閱讀 3,672評(píng)論 2 7
  • 基本使用 通過NSURLConnection發(fā)送請(qǐng)求常用的類NSURL : 用于創(chuàng)建網(wǎng)絡(luò)請(qǐng)求地址NSURLRequ...
    Mario_ZJ閱讀 437評(píng)論 0 0
  • iOS網(wǎng)絡(luò)編程讀書筆記 Facade Tester客戶端門面模式的實(shí)例(被動(dòng)版本化) 被動(dòng)版本化贮缕,所以硬編碼URL...
    melouverrr閱讀 1,610評(píng)論 3 7
  • iOS開發(fā)網(wǎng)絡(luò)篇—NSURLConnection基本使用 一、NSURLConnection的常用類 (1)NSU...
    不會(huì)打滾兒的獅子閱讀 280評(píng)論 0 2