iOS封装网络请求

iOS中经常会有网络请求,可以把它封装起来,方便使用:

网络封装请求类:

.h文件:



#import <Foundation/Foundation.h>


@interface NetHandler : NSObject


//无返回值,根据网络请求 的特点,不同的地方就是请求的地址和分析数据的方式不一样,就是把这两部分分别作为方法参数

+ (void)getDataWithUrl:(NSString *)str complietion:(void(^)(NSData *data))block;


.M文件:

若用的接口是post请求,直接可以把get改成post即可

#import "NetHandler.h"


@implementation NetHandler


+ (void)getDataWithUrl:(NSString *)str complietion:(void (^)(NSData *))block

{

    NSString * urlStr = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    

    NSURL *url = [NSURL URLWithString:urlStr];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];

    

    request.HTTPMethod = @"GET";

    ////////////连接建立

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

        

        ////处理 数据

        if (data != nil) {

            //当返回的数据不是空,就调用block

            block(data);

        }

        

        

        

        block(data);

        

        //让有关视图刷新 刷新数据

        ///[tableView reloadData];

        //label.text = ...

        

        

        

        

    }];


}





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。