基于AFNetWorking封装一个网络请求数据的类
1.新建一个继承于NSObject类的类,在.h文件中
#import "AFHTTPRequestOperationManager.h"
//定义两个block来接收请求成功和失败
typedef void(^DownLoadFinishedBlock)(id responseObj);
typedef void (^DownLoadFialedBlock)(NSError*error);
@interface NetManager : NSObject
//Get请求的方法封装
+(void)doGetWithUrlStr:(NSString*)urlString contentType:(NSString*)type finished:(DownLoadFinishedBlock)finished failure:(DownLoadFialedBlock)fialed;
//Post请求的方法封装
+(void)doPostWithUrlStr:(NSString*)urlString parameters:(NSDictionary*)dic contentType:(NSString*)type finished:(DownLoadFinishedBlock)finished failure:(DownLoadFialedBlock)fialed;
2.下面是封装方法的实现:
#import "NetManager.h"
@implementation NetManager
//Get请求的方法
+(void)doGetWithUrlStr:(NSString*)urlString contentType:(NSString*)type finished:(DownLoadFinishedBlock)finished failure:(DownLoadFialedBlock)fialed{
//创建manager对象
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];
//设置请求的数据类型
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:type, nil];
[manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
//请求成功
finished(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//请求失败
fialed(error);
}];
}
//Post请求的方法
//说明:parameters:参数,即使用post请求时需要传给后台服务器的参数,在这里我们应封装成一个字典类型的数据,然后把这个字典当做参数传过去。
+(void)doPostWithUrlStr:(NSString*)urlString parameters:(NSDictionary*)dic contentType:(NSString*)type finished:(DownLoadFinishedBlock)finished failure:(DownLoadFialedBlock)fialed
{
//创建manager对象
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];
//设置请求的数据类型
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:type, nil];
[manager POST:urlString parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {
finished(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
fialed(error);
}];
}
@end
基于AFNetWorking封装一个网络请求数据的类的更多相关文章
- 基于AFNetworking封装的网络请求工具类【原创】
		今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家. 前提,导入AFNetworking框架, 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在a ... 
- 基于AFNetWorking   3.0封装网络请求数据的类
		对于使用 AFNetworking 的朋友来说,很多朋友都是直接调用 AFNetworking的 API ,这样不太好,无法做到全工程统一配置. 最好的方式就是对网络层再封装一层,全工程不允许直接使用 ... 
- block传值以及利用block封装一个网络请求类
		1.block在俩个UIViewController间传值 近期刚学了几招block 的高级使用方法,事实上就是利用block语法在俩个UIViewController之间传值,在这里分享给刚開始学习 ... 
- iOS 自己封装的网络请求,json解析的类
		基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ... 
- 基于Android Volley的网络请求工具
		基于Android Volley的网络请求工具. 一.说明 AndroidVolley,Android Volley核心库及扩展工程.AndroidVolleySample,网络请求工具示例工程.Re ... 
- [Swift通天遁地]四、网络和线程-(5)解析网络请求数据:String(字符串)、Data(二进制数据)和JSON数据
		★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ... 
- 基于 element-plus 封装一个依赖 json 动态渲染的查询控件
		前情回顾 基于 el-form 封装一个依赖 json 动态渲染的表单控件 Vue3 封装第三方组件(一)做一个合格的传声筒 功能 使用 vue3 + element-plus 封装了一个查询控件,专 ... 
- 如何基于 React 封装一个组件
		如何基于 React 封装一个组件 前言 很多小伙伴在第一次尝试封装组件时会和我一样碰到许多问题,比如人家的组件会有 color 属性,我们在使用组件时传入组件文档中说明的属性值如 primary , ... 
- 封装获取网络信息Linux—API类
		封装获取网络信息Linux—API类 封装好的库: #ifndef NETINFORMATION_H #define NETINFORMATION_H #include <netdb.h> ... 
随机推荐
- BackgroundCheck – 根据图片亮度智能切换元素样式
			BackgroundCheck 是一个轻量的 JavaScript 库,能够根据元素后面的图片的亮度自动切换元素样式.例如在图片幻灯片功能中,根据图片亮度调整导航箭头的颜色,这样让图片和导航的颜色形成 ... 
- onhashchange事件,只需要修改hash值即可响应onhashchange事件中的函数(适用于上一题下一题和跳转页面等功能)
			使用实例: 使用onhashchange事件做一个简单的上一页下一页功能,并且当刷新页面时停留在当前页 html: <!DOCTYPE html><html><body& ... 
- 【第三课】ANR和OOM——贪快和贪多的后果(上)
			恼人的ANR 早先年用Android的时候,就连很多知名的app也总是莫名其妙崩溃,好像手机快的时候会崩溃,手机卡的时候app会卡死.卡死的时候会弹出来一个框,询问是要结束app还是继续等待.这就是A ... 
- Week1项目报告
			1. 预测时间 Personal Software Process Stages Time(h) 计划 · 估计这个任务需要多少时间 16.5 开发 · 需求分析 (包括学习新技术) 4 · 生成设计 ... 
- SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息
			在介绍类型转换和格式化之前,我首先来介绍 <mvc:annotation-driven />. 需要导入的 schema: xmlns:mvc="http://www.sprin ... 
- 数论 - 算数基本定理的运用 --- nefu  118 : n!后面有多少个0
			题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php Mean: 略. analyse: 刚开始想了半天都没想出来,数据这么大,难道是有什么 ... 
- C#操作IIS程序池及站点的创建配置
			最近在做一个WEB程序的安装包:对一些操作IIS进行一个简单的总结:主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作:首先要对Microso ... 
- Python入门笔记(23):模块
			一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用.实际的角度,模块往往对应Python程序文件. 每个文件都是一 ... 
- 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架开发随笔一
			公司业务量比较大,接了很多项目,为了缩短开发周期老板让我牵头搭建了一个敏捷开发框架. 我们主要的业务是做OA.CRM.ERP一类的管理系统,一个通用的后台搭出来,再配合一些快速开发的组件开发效率能提高 ... 
- 用Perl编写Apache模块
			前言 Apache被许多大流量网站所嫌弃,但很多企业级的场景则更为适用. Apache httpd 从 2.0 之后,已经不仅仅局限于一个 http 的服务器,更是一个完善而强大.灵活而健壮且容易扩展 ... 
