美文网首页
常用请求框架AFN的进一步封装,个人感觉好用

常用请求框架AFN的进一步封装,个人感觉好用

作者: 等不来的期待 | 来源:发表于2016-10-19 14:32 被阅读111次

自己没事时候在afn的基础上又进行了一层封装,一行代码解决get/post请求,自我感觉良好,有用的朋友可以下载下来看看---推荐

先说一下环境的吧,先建一个项目,然后导入afn库,可以直接导入包,也可以通过cocoapods导入,这个简单的操作就不说了,后面我会介绍怎么安装cocoapods的,下面直接上代码:

1.新建一个类为WNHttpRequest

.h中:

#importtypedef void(^SuccessBlock)(id responseBody);

typedef void(^FailureBlock)(NSString *error);

@interface WNHttpRequest : NSObject

+(void)reqWithUrl:(NSString *)url parameters:(id)parameter reqMethod:(NSString *)method body:(NSString *)body successBlock:(SuccessBlock)successBlock failureBlock:(FailureBlock)failureBlock;

@end

.m中

#import "WNHttpRequest.h"#import "AFNetworking.h"#import@implementation WNHttpRequest

#pragma mark - 服务器请求

+(void)reqWithUrl:(NSString *)url parameters:(id)parameter reqMethod:(NSString *)method body:(NSString *)body successBlock:(SuccessBlock)successBlock failureBlock:(FailureBlock)failureBlock

{

AFHTTPSessionManager *manager=[[[self class] alloc]init];

NSString *uppercaseReqMethod=[method uppercaseString];

NSLog(@"%@",uppercaseReqMethod);

if ([uppercaseReqMethod isEqualToString:@"POST"]) {

[manager POST:url parameters:parameter success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

successBlock(responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

failureBlock([error localizedDescription]);

}];

}

else if([uppercaseReqMethod isEqualToString:@"GET"])

{

[manager GET:url parameters:parameter success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

successBlock(responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

failureBlock([error localizedDescription]);

}];

}

}

@end

2.在ViewController.m中

#import "ViewController.h"

#import "WNHttpRequest.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSDictionary *parameters = @{参数};

[WNHttpRequest reqWithUrl:url parameters:parameters reqMethod:@"POST/GET" body:nil successBlock:^(id responseBody) {

NSLog(@"%@",responseBody);

} failureBlock:^(NSString *error) {

NSLog(@"%@",error);

}];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

源代码demo的下载地址https://github.com/wangningsai/WNHttpRequest

直接把WNHttpRequest这个类拉到项目中即可

相关文章

  • 常用请求框架AFN的进一步封装,个人感觉好用

    自己没事时候在afn的基础上又进行了一层封装,一行代码解决get/post请求,自我感觉良好,有用的朋友可以下载下...

  • iOS网络框架简单封装

    AFN 简单封装--iOS重构-轻量级的网络请求封装实践 YTKNetworking 网络框架封装源码解析:网络层...

  • 对AFNetworking3.0的封装

    TTNetworkServer 对AFN的常用方法封装,支持缓存、批量请求、Cookie设置、返回数据自动转换为J...

  • iOS-网络相关

    本篇涵盖AFN、ASI、封装网络请求等. 1.iOS网络请求之ASI与AFN的二次封装及意义2.LXNetwork...

  • 网络请求--对AFN的封装

    网络框架封装## 查看AFN的源码会发现,AFN这套框架内部的GET,POST,DELETE,PUT,HEAD,P...

  • AFNetworking框架分析(一)——结构基本介绍

    作为一名iOS开发者,AFN网络请求框架是最为常用熟悉的第三方框架之一。GitHub链接跳转AFN链接作为一名开发...

  • 最简单的iOS网络请求

    做iOS开发,说到网络请求,大家可能都不约而同的提到AFN,可以说大家的网络请求都是用AFN封装而成,AFN的强大...

  • AFN框架使用

    AFN框架使用 1.AFN框架基本使用 2 .AFN的基本使用 (1)发送GET请求的两种方式(POST同) (2...

  • 关于网络数据请求

    本文主要记录笔者在ios7之前后所用的数据请求方式,以及现在常用到的AFN数据请求的封装(本文依然是笔者作为笔记使...

  • iOS开发-AFNetworking框架基本使用

    一、AFN框架基本使用 1.1 AFN内部结构 1.2 AFN的基本使用 (1)发送POST请求的方式 (2)使用...

网友评论

      本文标题:常用请求框架AFN的进一步封装,个人感觉好用

      本文链接:https://www.haomeiwen.com/subject/tljxuttx.html