IOS网络请求方法之restfull请求

   之前做网络请求的时候,大部分时候都是用的三方AFNetWorking的库来进行网络请求的封装和调用,对于常规的GET请求已经POST请求使用起来非常容易,但是后面在实际项目中遇到了利用PHP写的后台,要求使用restFull请求进行网络请求,翻遍了很多资料都无果,后来终于了解到了一种NSURLSession系统库的restfull请求解决方案,以此来分享给大家。

  大家都知道restFull请求的请求方式分为很多种例如PUT,DELETE,POST等,还带有请求头,具体的大家可以使用Google的浏览器下载一个restfullApi的工具查看一下



- (void)sendResultToServiceWithMethod:(NSString *)method WithUrl:(NSString *)url withSendInfo:(NSDictionary *)paramDic responseCode:(void(^)(NSInteger code, NSData * _Nullable responseData))responses addShowView:(UIView *) mainView

{

    if (mainView ) {

        dispatch_async(dispatch_get_main_queue(), ^{

            [MBProgressHUD showHUDAddedTo:mainView animated:YES];

        });

    }

    

    NSURLSession *session = [NSURLSession sharedSession];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];

    [request setHTTPMethod:method];

//请求头设定,使用Bearer方式的Token传递也在此设置

    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];

    [request setValue:@"application/json"  forHTTPHeaderField:@"Content-Type"];

    

    request.HTTPBody = [NSJSONSerialization dataWithJSONObject:paramDic options:NSJSONWritingPrettyPrinted error:nil];

    

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

        NSHTTPURLResponse *realResponse = (NSHTTPURLResponse *)response;

      responses(realResponse.statusCode,data);

      dispatch_async(dispatch_get_main_queue(), ^{

          [MBProgressHUD hideAllHUDsForView:mainView animated:YES];

      });

    }];

    [task resume];

}


------------------------------------------------------------------------------------------------------

以上方法都是个人使用中总结出来的,实际运用方法还请参考苹果官方开发文档


你可能感兴趣的:(IOS网络请求技术)