星空网 > 软件开发 > 操作系统

NSURLConnection的使用

一:NSURLConnection(IOS9.0已经弃用)是早期apple提供的http访问方式。以下列出了常用的几个场景:GET请求,POST请求,Response中带有json数据

      对于NSURLConnection有以下注意事项:(1)sendAsynchronourequest: queue: completionHandler:函数中的queue参数表示的是“handler 这个block运行在queue中,如果queue为mainThread,那么hanlder就运行在主线程;所以在处理UI的时候需要注意这个参数”

(1)Get请求(返回文本)

 //Request  NSMutableURLRequest *urlRequest = [NSMutableURLRequest new];   [urlRequest setURL:[NSURL URLWithString:@"http://XXX.sinaapp.com/test/test.php?namr&id=43"]];  [urlRequest setTimeoutInterval:10.0f];  [urlRequest setHTTPMethod:@"GET"];  [urlRequest setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];  NSOperationQueue *queue = [[NSOperationQueue alloc]init];  [NSURLConnection sendAsynchronousRequest:urlRequest                    queue:queue              completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {  
    //根据回复Headers,确认是是否为NSHTTPURLResponse的对象    if([response isKindOfClass:[NSHTTPURLResponse class]]){    NSHTTPURLResponse *resHttp = (NSHTTPURLResponse *)response;    NSLog(@"status = %ld",resHttp.statusCode);//200 304 401......    NSDictionary *dicHeader = resHttp.allHeaderFields;   NSLog(@"headers = %@",dicHeader);   }    else{    NSLog(@"not http");   }
   if(data){    NSString *html = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];    NSLog(@"%@",html);   } }];

 

 
(2)POST请求(返回文本)
  //Request  NSMutableURLRequest *urlRequest = [NSMutableURLRequest new];  [urlRequest setURL:[NSURL URLWithString:@"http://XXX.sinaapp.com/test/test.php"]];  [urlRequest setTimeoutInterval:10.0f];  [urlRequest setHTTPMethod:@"POST"];  [urlRequest setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];  NSString *strBody = @"p1=abc&p2=12";  [urlRequest setHTTPBody:[strBody dataUsingEncoding:NSUTF8StringEncoding]];  NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { //确认是http if([response isKindOfClass:[NSHTTPURLResponse class]]){ NSHTTPURLResponse *resHttp = (NSHTTPURLResponse *)response; NSLog(@"status = %ld",resHttp.statusCode);//200 304 401...... NSDictionary *dicHeader = resHttp.allHeaderFields; NSLog(@"headers = %@",dicHeader); } else{ NSLog(@"not http"); } if(data){ NSString *html = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",html); } }];

 

    

(3)Response中有Json数据
  //Request  NSMutableURLRequest *urlRequest = [NSMutableURLRequest new];  [urlRequest setURL:[NSURL URLWithString:@"http://XXX.sinaapp.com/test/test.php"]];  [urlRequest setTimeoutInterval:10.0f];  [urlRequest setHTTPMethod:@"POST"];  [urlRequest setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];  NSString *strBody = @"p1=abc&p2=12";  [urlRequest setHTTPBody:[strBody dataUsingEncoding:NSUTF8StringEncoding]];  NSOperationQueue *queue = [[NSOperationQueue alloc]init];  [NSURLConnection   sendAsynchronousRequest:urlRequest   queue:queue   completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {     NSError *err2 = nil;     id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&err2];     if([jsonObject isKindOfClass:[NSDictionary class]]){       NSLog(@"NSDictionary");       NSDictionary *dic = jsonObject;       NSLog(@"dic = %@",dic);     }     else if([jsonObject isKindOfClass:[NSArray class]]){       NSLog(@"NSDictionary");       NSDictionary *arr = jsonObject;       NSLog(@"arr = %@",arr);     }   }];

 

(4)Request中带有Json格式数据

 





原标题:NSURLConnection的使用

关键词:URL

URL
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

欧洲站发fba:https://www.goluckyvip.com/tag/39287.html
欧洲站海外仓:https://www.goluckyvip.com/tag/39288.html
欧洲站做fba需要:https://www.goluckyvip.com/tag/39289.html
Jocye爱跨境:https://www.goluckyvip.com/tag/3929.html
欧洲专线:https://www.goluckyvip.com/tag/39291.html
欧洲专线fba:https://www.goluckyvip.com/tag/39292.html
长治婚庆女司仪和主持人:https://www.vstour.cn/a/366176.html
北京丰台区水上乐园哪家好玩?:https://www.vstour.cn/a/366177.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流