美文网首页iOS学习笔记
iOS中简单的封装数据请求

iOS中简单的封装数据请求

作者: 李李李大胖子 | 来源:发表于2015-12-23 18:04 被阅读627次

之前每次写请求数据的时候都特别麻烦,所以呢,我就简单的封装了一个请求类

#import//给block起 别名

//类型 void(^)(BOOL success , id data)

//别名是 Complicate

typedef void(^Complicate)(BOOL success , id data);

//起别名

typedef NSString *  MYString;

@interface DownLoadDataSource : NSObject

//请求 对应url  对应参数dic 的 内容

//通过 complicate 回调 返回  请求到的内容

-(void)downloadWithUrl:(MYString)urlStr parameters:(NSDictionary *)dic complicate:(Complicate) complicate;

@end

#import "DownLoadDataSource.h"

#import "AFNetworking.h"

#define BaseUrl @"http://api.iclient.ifeng.com"//服务器主机地址

@interface DownLoadDataSource()

//用来做请求

@property(nonatomic,strong)AFHTTPRequestOperationManager * manager;

@end

@implementation DownLoadDataSource

-(instancetype)init{

//重写 初始化方法

if (self = [super init]) {

//初始化 请求类

_manager = [[AFHTTPRequestOperationManager alloc]initWithBaseURL:[NSURL URLWithString:BaseUrl]];//baseUrl

//        _manager.responseSerializer = [AFHTTPResponseSerializer serializer];//设置json解析器

_manager.responseSerializer = [AFJSONResponseSerializer serializer];//设置成json解析器

//设置可以接受的contentTypes

//        _manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json", nil];

}

return self;

}

-(void)downloadWithUrl:(MYString)urlStr parameters:(NSDictionary *)dic complicate:(Complicate) complicate{

//发送post请求

[_manager POST:urlStr parameters:dic  success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSLog(@"%@",operation.response);

//成功之后 通过block 回调

NSError * error = nil;

//解析

//        id object = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:&error];

if (error) {

if (complicate) {//判断 block变量有没有值

complicate(NO,error);//

}

}else {

if (complicate) {

complicate(YES,responseObject);

}

}

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

//请求失败

if (complicate) {

complicate(NO,error);

}

NSLog(@"%@",error);

}];

}

@end

撒花 撒花 撒花 ,第一次写,记得好评哦,记得粉我哦.....

相关文章

  • iOS中简单的封装数据请求

    之前每次写请求数据的时候都特别麻烦,所以呢,我就简单的封装了一个请求类 #import//给block起 别名 /...

  • Vue- 应用Promise的axios请求封装

    现在应该大部分公司都是前后端分离了。so,数据请求的封装还是必须的。 为了实现向ios中block封装请求的异步的...

  • iOS网络框架简单封装

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

  • 无标题文章

    iOS 中关于请求失败error的解析处理 一般封装的AFN请求数据中,会出现code=400,也就是说当请求失败...

  • AFNetworking3.0的一个小封装

    本次封装只是简单的对网络请求封装,未涉及数据缓存的功能,其代码实现如下所示: 在XYNetworking.h文件中...

  • 无标题文章

    iOS数据请求,解析 , 存储 进程,线程 设计模式 sdk封装 oc语言 深入分析

  • 封装简单的ajax请求

    封装一个简单的ajax请求 此封装默认为 GET 请求,参数为 url 地址以及对数据的处理方式fn

  • HTTP(一)

    1. HTTP原理 http请求封装在应用层数据包中,再封装到tcp数据包中,再封装到ip数据包中,再封装到以太网...

  • iOS runtime进行数据解析封装

    iOS runtime进行数据解析封装 iOS runtime进行数据解析封装

  • 小程序的熟知

    1、封装小程序的数据请求: 一、将所有的接口放在统一的js文件中并导出 二、在app.js中创建封装请求数据的方法...

网友评论

    本文标题:iOS中简单的封装数据请求

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