OC 30 day
下面这段程序码是上一篇文章做出来的。
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
}];
当我们发送请求时,会拿到三个东西。
可以利用if判变式,如下
if (!connectionError) {
<#statements#>
}
当没有错误时,执行放在里面的代码
因此我们按照当没错误时,显示资料。错误时,显示错误讯息
if (!connectionError) {
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
}else{
NSLog(@"error: %@",connectionError);
}
错误处理处理完了吗?还没!! 还有reponse要处理
我们来执行代码,然後把respone po 出来
可以看到以下资讯:
<NSHTTPURLResponse: 0x60000119dac0> { URL: https://run.mocky.io/v3/39057ccc-3332-4a2f-a88f-7bd259f078b0 } { Status Code: 200, Headers {
"Content-Length" = (
57
);
"Content-Type" = (
"application/json; charset=UTF-8"
);
Date = (
"Fri, 08 Jan 2021 06:32:46 GMT"
);
"Sozu-Id" = (
"a65d5768-0b74-40bf-b899-cb4dd63982bd"
);
} }
你不难发现这些数据的是 header,那我们也得到了以下的结论:
reponse 就是 header
data 就是 body
是我们发送数据之前的事情,判断是否正常接受到服务器返回的数据。
reponse是什麽类型呢?
NSURLRespons
if (!connectionError) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if (httpResponse.statusCode == 200 || httpResponse.statusCode == 304){
NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
}else{
NSLog(@"服务器内部测试");
}
}else{
NSLog(@"error: %@",connectionError);
}
<<: iOS APP 开发 OC 第十五天,网路请求(请求方式对比,缓存策略,请求时长)
>>: panel data regression in r
上一篇我们的基因体时代-AI, Data和生物资讯 Day01- 超越摩尔定律的资料增长介绍了生医领...
数位行销使您能够每天跟踪活动,并减少您在某个渠道上的支出。传统的广告形式则不一定了,即使您的收益很差...
Zsh 可以让使用者利用配置客制各种不同的功能,像是命令的自动补全、提示、高亮与缩写等。但是要自己设...
在资料库中除了有数字和字母之外,当然也会有字串,如果想要搜寻字串,就要使用'单引号' 而字串要使用运...
由於老师的成绩分级档案需要能自动送交学校教务处, 因此,我们就来设计一个可以自动将档案附在Email...