iOS 網(wǎng)絡(luò)之?dāng)?shù)據(jù)請(qǐng)求

一、異步

1、GET請(qǐng)求(BLOCK)

//初始化一個(gè)session

NSURLSession *session = [NSURLSession sharedSession];

//通過(guò)地址得到一個(gè)url

NSString *urlStr = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20151101&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

NSURL *url = [NSURL URLWithString:urlStr];

//通過(guò)單例的session得到一個(gè)sessionTask,且通過(guò)URL初始化task 在block內(nèi)部可以直接對(duì)返回的數(shù)據(jù)進(jìn)行處理

NSURLSessionTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

//請(qǐng)求之后會(huì)調(diào)用這個(gè)block

NSString *resultStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"resultStr->%@",resultStr);

}];

//啟動(dòng)人物,讓task開始之前執(zhí)行

[task resume];

2、POST請(qǐng)求(BLOCK)

NSString *urlString = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx";

NSURL *url = [NSURL URLWithString:urlString];

//初始化request 并配置httpBody httpMethod

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:30];

request.HTTPBody = [@"date=20151101&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" dataUsingEncoding:NSUTF8StringEncoding];

request.HTTPMethod = @"POST";

//配置session 并讓task開始執(zhí)行

NSURLSession *session = [NSURLSession sharedSession];

NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

NSString *resultStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"resultStr->%@",resultStr);

}];

[task resume];

3、Delegate請(qǐng)求

#pragma mark - NSURLSessionDataDelegate代理方法

//服務(wù)器開始響應(yīng),客戶端將要接收數(shù)據(jù)

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response

completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler

{

//允許服務(wù)器開始響應(yīng)

completionHandler(NSURLSessionResponseAllow);

//? ? NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

self.mulData = [NSMutableData data];

}

//接收數(shù)據(jù)(會(huì)調(diào)用多次)

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data

{

//處理每次接受到得數(shù)據(jù)

//將每次接收到的data片段,拼接到_mulData

[_mulData appendData:data];

}

//數(shù)據(jù)接收完成,網(wǎng)絡(luò)請(qǐng)求成功

-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error

{

NSLog(@"result->%@",[[NSString alloc]initWithData:_mulData encoding:NSUTF8StringEncoding]);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容