IOS原生访问网络-NSURLSession

/**
 *  原生请求网络
 *
 *  @param method "POST"/"GET"
 *  @param para   请求参数
 *  @param url    请求地址
 */
- (void)connectToNetWithMethod:(NSString *)method andPara:(id)para andUrl:(NSString *)url {
    NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:20];
    [request setHTTPMethod:method];//method ="POST"/"GET"
    NSData *paraData  = [NSJSONSerialization dataWithJSONObject:para
                                                              options:NSJSONWritingPrettyPrinted
                                                                error:nil];
    [request setHTTPBody:paraData]; //把参数体放进去
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
        NSLog(@"apiJsonResult = %@",result);
        if (response) {
            //获取请求header返回的东西-示例Response-Id
            NSHTTPURLResponse* newResp = (NSHTTPURLResponse*)response;
            NSString *responseId = [newResp.allHeaderFields objectForKey:@"Response-Id"];
            //返回的内容 data

        }else{
            
        }
        
        
    }];
    [task resume];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容