iOS 原生网络请求写法

// 网络请求
   
NSURLSession * mySession = [ NSURLSession sharedSession ];
   
NSURL * fullURL = [ NSURL URLWithString :[ NSString stringWithFormat : @"%@/%@" , host , shoplisturl ]];
   
NSMutableURLRequest * request = [ NSMutableURLRequest requestWithURL :fullURL cachePolicy : NSURLRequestUseProtocolCachePolicy timeoutInterval : 7.0 ];
    request.
HTTPMethod = @"POST" ;
    [request
addValue : @"application/x-www-form-urlencoded" forHTTPHeaderField : @"Content-Type" ];
   
NSString * paramStr = [ NSString stringWithFormat : @"cate_id=%@&business=%@&p=%@&sort=%@&num=%@&recommend=%@&keyword=%@&lng_lat=%@&uid=%@&token=%@" ,cateID,businessID,page,sort,num,recommend,keyword,lng_lat,userID,token];
    request.
HTTPBody = [paramStr dataUsingEncoding : NSUTF8StringEncoding ];
   
NSURLSessionDataTask * task = [mySession dataTaskWithRequest :request completionHandler :^( NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
       
// 判断接口是否成功返回
       
if (error) {
           
// 接口访问失败
           
NSLog ( @"error:%@" ,error. localizedDescription );
           
NSLog ( @"%s" ,__func__);
           
           
NSInteger status = 0 ;
           
           
if (callback) {
                callback(status,
@" 网络不给力 " );
            }
        }
else
        {
           
// 接口访问成功
           
//JSON 解析
           
NSError * parseError1 = nil ;
           
NSDictionary * dic = [ NSJSONSerialization JSONObjectWithData :data options : NSJSONReadingMutableContainers error :&parseError1];
           
if (parseError1) {
               
NSLog ( @"JSON 解析错误 " );
               
return ;
            }
           
NSLog ( @"data:%@" , dic);
           
           
NSArray *dataArray = [dic objectForKey : @"info" ];
           
NSInteger status = [[dic objectForKey : @"status" ] integerValue ];
           
if (status == 1 ) {
               
if (callback) {
                   
dispatch_async ( dispatch_get_main_queue (), ^{
                        callback(status,dataArray);
                    });
                }
            }
else {
//                [self showHUDInWindowJustWithText:[dic objectForKey:@"info"] disMissAfterDelay:1.0];
               
               
if (callback) {
                   
dispatch_async ( dispatch_get_main_queue (), ^{
                        callback(status,
nil );
                    });
                }
            }
        }
       
    }];
    [task resume ];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值