WBNetworkingLite 1.0.1

WBNetworkingLite 1.0.1

Maintained by wans.



  • By
  • wans

WBNetworkingLite

CI Status Version License Platform

基于NSURLSession的轻量级网络库。 主要封装了常用的GET, POST, Put,Delete上传, 下载请求。

主要更新:

  • 请求参数可扩展,无需重载大量同名方法,代码调用简洁明了。
  • 网络库内部配置通用HttpHeaderFields,外部扩展可配置自定义默认的HttpHeaderFields,自定义默认的parameters,无需外实现类文件。
  • 上传请求更新,可自由配置上传文件类型。
  • 支持restful Api,并新增Put,Delete请求方式。
安装
platform :ios, '7.0'
pod "WBNetworkingLite"
初始化配置
[WBNetworking setupConfig:^(WBRequestConfig *config) {
    config.baseUrl = @"https://api.douban.com";
    config.timeoutInterval     = 10;
    config.defaultParameters   = @{@"no":[WBKeychain uudi]};
    config.defaultHeaderFields = @{
                                 @"Accept-Encoding":@"gzip, deflate, sdch",
                                 @"Accept-Language":@"keep-alive",
                                 @"appChannel":@"App Store"
                                 };
}];

更新配置(只会更新,不会替换字段的值)

[WBNetworking updateConfig:^(WBRequestConfig * _Nonnull config) {
   config.defaultParameters = @{@"token":token};
}];

GET请求
[WBNetworking GET:^(WBRequestConfig *request) {
    request.url = @"/v2/movie/coming_soon";
} response:^(id response, NSError *error) {
    NSLog(@"response:%@", response);
}];
POST请求
[WBNetworking POST:^(WBRequestConfig *request) {
    request.url = @"/lawyer/login";
    request.parameters = @{@"user":@"18565823225", @"pwd":@"96E79218965EB72C92A549DD5A330112"};
} response:^(id response, NSError *error) {
    NSLog(@"response:%@", response);
}];

PUT请求
[WBNetworking PUT:^(WBRequestConfig *request) {
    request.url = @"/lawyer/past-case";
    request.rf_parameters = @[@"wans"];
    request.parameters = @{@"username":@"wans",@"password":@"123"};
} response:^(id response, NSError *error) {
    NSLog(@"response:%@", response);
}];

Delete请求
[WBNetworking DELETE:^(WBRequestConfig *request) {
    request.url = @"/lawyer/past-case";
    request.rf_parameters = @[@"深圳"];
} response:^(id response, NSError *error) {
    NSLog(@"response:%@", response);
}];

上传请求
NSData *data = UIImageJPEGRepresentation(self.imageView.image, 0.5);

[WBNetworking UPLOAD:^(WBRequestConfig *request) {
    request.url = @"/lawyer/lawyer-logo";
} uploadData:^(WBUploadData *uploadData) {
    uploadData.name = @"logo";
    uploadData.filename = @"logo.jpg";
    uploadData.contentType = @"image/jpg";
    uploadData.data = data;
} uploadPercent:^(float percent) {
    NSLog(@"percent >> %f", percent);
} response:^(id response, NSError *error) {
    NSLog(@"response:%@", response);
}];
下载请求
[WBNetworking DOWNLOAD:^(WBRequestConfig *request) {
    request.url = @"https://img6.bdstatic.com/img/image/public/yuanjihuasy.png";
} response:^(id  response, NSError *error) {
    self.imageView.image = [UIImage imageWithData:response];
}];
取消请求

请求与请求地址url关联,可以通过url取消正在发送的请求。

[WBNetworking CANCLE:@"/user/get-activity-img"];