亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS-NSURLConnection網絡請求,與服務器交互的請求注意點和實現方式

2019-11-14 18:32:56
字體:
來源:轉載
供稿:網友

NSURLConnection

前面我們學習過了多線程的諸多知識,現在該學習網絡,學習網絡少不了的是發送網絡請求,跟服務器進行交互。在iOS中,發送網絡請求可以使用NSURLConnection類

使用步驟:


1、創建一個NSURL對象,設置請求路徑

這沒什么好說的,我們可以將字符串變成URL,也可以直接設置URL,例如:

//這里對字符串進行的處理是因為URL里面不支持中文,而進行的百分號變換,將中文變成百分號格式NSString *urlStr = [@"http://120.25.226.186:32812/login?username=123&pwd=123" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL *url = [NSURL URLWithString:urlStr];

2、傳入NSURL創建一個NSURLRequest對象,設置請求頭和請求體等

可以直接設置請求對象,用NSURLRequest,但是這樣不能對請求進行更細致的設置

NSURLRequest *request = [NSURLRequest requestWithURL:url];

要進行更細致的設置,如請求方式,請求頭等的設置,只能使用NSURLRequest的子類NSMutableURLRequest:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];request.HTTPMethod = @"POST";// 請求體NSString *bodyStr = @"username=123&pwd=123";request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];

我們一共可以設置的請求屬性如下表示:

設置請求超時等待時間(超過這個時間就算超時,請求失?。? (void)setTimeoutInterval:(NSTimeInterval)seconds;設置請求方法(比如GET和POST)- (void)setHTTPMethod:(NSString *)method;設置請求體- (void)setHTTPBody:(NSData *)data;設置請求頭- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;

####3、使用NSURLConnection發送請求(2種方式,各有不同)

3.1發送同步請求
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error;

參數:

  • 第一個參數: NSURLRequest,包含了需要請求的地址, 以及請求頭
  • 第二個參數: 當服務器返回數據之后, 就會將數據賦值給第二個參數(響應頭)
  • 第三個參數: 錯誤信息

特點:

  • 會阻塞主線程,會返回數據給NSURLConnection,默認是GET請求

3.2異步請求

根據對服務器返回數據的處理方式的不同,又可以分為2種

1、block回調方式的異步

+ (void)sendAsynchronousRequest:(NSURLRequest*) request queue:(NSOperationQueue*) queue completionHandler:(void (^)(NSURLResponse* response, NSData* data, NSError* connectionError)) handler;

2、代理的方式異步

- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate;+ (NSURLConnection*)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate;- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately;

在startImmediately = NO的情況下,需要調用start方法開始發送請求

- (void)start;

成為NSURLConnection的代理,要遵守NSURLConnectionDataDelegate協議

NSURLConnectionDataDelegate協議中的代理方法

開始接收到服務器的響應時調用- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;接收到服務器返回的數據時調用(服務器返回的數據比較大時會調用多次)- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;服務器返回的數據完全接收完畢后調用- (void)connectionDidFinishLoading:(NSURLConnection *)connection;請求出錯時調用(比如請求超時)- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;

創建GET和POST請求的舉例,

創建GET請求NSString *urlStr = [@"http://120.25.226.186:32812/login?username=123&pwd=123" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL *url = [NSURL URLWithString:urlStr];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];創建POST請求NSString *urlStr = @"http://120.25.226.186:32812/login";NSURL *url = [NSURL URLWithString:urlStr];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];request.HTTPMethod = @"POST";// 請求體NSString *bodyStr = @"username=123&pwd=123";request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];

注意:

  • URL中不能包含中文, 如果包含中文會報錯
  • 如果URL中包含中文, 需要對URL中百分號編碼

例如:

NSString *urlStr = @"http://120.25.226.186:32812/login2?username=小黃人&pwd=520it&type=JSON";urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL *url = [NSURL URLWithString:urlStr];

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人激情视频在线观看| 日韩精品中文字幕在线观看| 欧美成人精品在线视频| 最近2019年手机中文字幕| 午夜剧场成人观在线视频免费观看| 欧美国产亚洲精品久久久8v| 一区二区福利视频| 亚洲一区二区三区在线视频| 国产欧美精品日韩精品| 欧美在线视频免费| 国产视频精品在线| 成人写真视频福利网| 欧美日韩另类在线| 怡红院精品视频| 亚洲成成品网站| 51久久精品夜色国产麻豆| 欧美成人小视频| 亚洲美女福利视频网站| 亚洲一区二区久久久| 欧美伊久线香蕉线新在线| 狠狠躁夜夜躁人人爽超碰91| 欧美激情在线视频二区| 中文字幕免费精品一区高清| 日韩电视剧免费观看网站| 2020欧美日韩在线视频| 欧美大胆a视频| 国产91精品最新在线播放| 精品久久久久国产| 国产日韩av在线播放| 欧美性生交xxxxxdddd| 久久69精品久久久久久久电影好| 亚洲欧美资源在线| 色爱av美腿丝袜综合粉嫩av| 亚洲精品国产成人| 亚洲精品美女网站| 精品国偷自产在线视频99| 国产一区二区三区在线| 国产欧美中文字幕| 亚洲电影免费观看高清完整版| 欧美电影免费观看高清| 亚洲免费精彩视频| 国产精品永久免费在线| 亚洲自拍在线观看| 欧美麻豆久久久久久中文| 成人福利在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品欧美一区二区| 97色在线观看| 精品国产一区二区三区久久久| 亚洲综合社区网| 久久精品99久久久香蕉| 精品国产拍在线观看| 91精品国产综合久久香蕉| 日韩精品极品在线观看| 国产精品欧美激情在线播放| 日韩欧美在线免费| 日韩人体视频一二区| 国产精品久久久久久超碰| xxxxx成人.com| 久久精品一本久久99精品| 欧美自拍视频在线观看| 国产午夜精品理论片a级探花| 欧美精品情趣视频| 高清欧美电影在线| 欧洲亚洲妇女av| 亚洲精品欧美日韩| 国外成人免费在线播放| 91精品免费视频| 欧美日韩午夜激情| 欧美精品免费播放| 久久精品91久久久久久再现| 人妖精品videosex性欧美| 欧美成人亚洲成人日韩成人| 欧美日韩精品在线| 亚洲2020天天堂在线观看| 欧美多人乱p欧美4p久久| 国产精品欧美日韩久久| 日韩欧美成人免费视频| 欧美黑人巨大xxx极品| 亚洲深夜福利视频| 日韩精品视频免费| 国产日韩欧美在线| 亚洲人成网7777777国产| 日韩av在线直播| 97avcom| 九九热精品视频国产| 国产精品狼人色视频一区| 伊是香蕉大人久久| 最新中文字幕亚洲| 正在播放国产一区| 日韩中文视频免费在线观看| 国产成人久久久精品一区| 欧美在线视频一区| 亚洲无av在线中文字幕| 亚洲网站在线看| 亚洲激情电影中文字幕| 一本一道久久a久久精品逆3p| 九色精品美女在线| 91精品视频免费看| 日本精品一区二区三区在线播放视频| 日本中文字幕成人| 97在线视频观看| 日韩第一页在线| 欧美日韩免费区域视频在线观看| 青青久久aⅴ北条麻妃| 国产欧美va欧美va香蕉在线| 久久人人爽人人爽人人片av高请| 亚洲第一精品久久忘忧草社区| 色偷偷88888欧美精品久久久| 欧美高清视频在线观看| 亚洲人成伊人成综合网久久久| 成人啪啪免费看| 日韩视频永久免费观看| 国产精品久久久久久久久影视| 日韩欧美在线中文字幕| 成人欧美一区二区三区黑人| 成人欧美一区二区三区黑人孕妇| 欧美激情性做爰免费视频| 亚洲xxx自由成熟| 国产美女高潮久久白浆| 538国产精品一区二区免费视频| 91久久精品国产91久久性色| 97视频在线免费观看| 亚洲一区二区中文字幕| 欧美一级片一区| 国产日韩欧美视频| 国产精品免费看久久久香蕉| 亚洲图中文字幕| 久久人体大胆视频| 日韩中文在线中文网在线观看| 亚洲视频第一页| 深夜成人在线观看| 久久中国妇女中文字幕| 国产精品日韩久久久久| 精品久久久久久中文字幕大豆网| 亚洲精品综合精品自拍| 91美女片黄在线观| 高清一区二区三区日本久| 国产在线观看不卡| 亚洲人成在线观看| 国内精品久久久久久中文字幕| 国产在线不卡精品| 国内精品伊人久久| 国产精品久久综合av爱欲tv| 一本色道久久综合狠狠躁篇怎么玩| 日韩女优在线播放| 日本伊人精品一区二区三区介绍| 精品亚洲一区二区三区在线播放| 亚洲视频网站在线观看| 一区二区三区高清国产| 久久人体大胆视频| 久久国产精品久久久久久| 茄子视频成人在线| 精品亚洲永久免费精品| 久久久国产精彩视频美女艺术照福利| 欧美激情精品在线| 中文字幕日韩欧美精品在线观看| 欧美日韩免费在线观看| 久久久久久久久久国产| 国产精品久久久久福利| 国产精品激情av在线播放| 在线精品高清中文字幕| 欧美日韩福利在线观看| 久久精品91久久香蕉加勒比|