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 = ...
}];
}
原文地址:http://blog.csdn.net/darling_qd/article/details/43984379