网络请求的封装

网络封装的原因:

开发者为了开发方便,出现了大量的第三方的网络请求,我们除了在cocoapods中引入第三方的开源,同时还应该注意的一点是:如果第三方的网络请求不更新了(比如ASI),或者网络请求工具类在新版本出现了bug导致暂时无法使用,我们工程中存在大量的网络请求,可能会导致我们工程无法运行,甚至导致工程需要重新走通,为了这种解决这种突发状况的产生,我们需要在网络请求之前,进行简单的封装:

这里我们以AFNetworking为例

HttpTool.h中:

#import <Foundation/Foundation.h>

@interface HttpTool : NSObject

/**

*  发送一个GET请求

*

*  @author <#author#>

*

*  @since v<#version number#>

*

*  @param url     请求路径

*  @param params  请求参数

*  @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block块中)

*  @param failure 请求失败后的回调(请将请求失败后想做的事情写到这个block块中)

*/

+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id respnseObj))success failure:(void(^)(NSError * error))failure;

/**

*  发送一个POST请求

*

*  @author <#author#>

*

*  @since v<#version number#>

*

*  @param url     请求路径

*  @param params  请求参数

*  @param success 请求成功后的回调(请将请求成功后想做的事情写到这个block块中)

*  @param failure 请求失败后的回调

*/

+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void(^)(id respnseObj))success failure:(void(^)(NSError * error))failure;

@end

HttpTool.m中:

#import "HttpTool.h"

#import "AFNetworking.h"

@implementation HttpTool

+ (void)get:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure{

//1.获得请求管理者

AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];

//发送GET请求

[manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {

if (success) {

success(responseObject);

}

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

if (failure) {

failure (error);

}

}];

}

+ (void)post:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure{

//1.获得请求管理者

AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];

//发送POST请求

[manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {

if (success) {

success(responseObject);

}

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

if (failure) {

failure(error);

}

}];

}

@end

时间: 2024-12-20 23:53:58

网络请求的封装的相关文章

使用NSURLConnection的网络请求与封装

访问网络的方式: 1.同步请求: 会阻塞主线程 2.异步请求: 无法取消 请求过程在多线程执行 基本流程: 1.构造NSURL实例. 2.生成NSURLRequest请求. 3.通过NSURLConnection发送请求. 4.通过NSURLRespond实例和NSError实例分析结果. 5.接受返回数据. 使用NSURLConnection发起异步请求: 第一种方法: - (void)setUrl:(NSURL *)url { //使用同异步请求网络 NSMutableURLRequest

关于ajax网络请求的封装

// 封装的ajax网络请求函数// obj 是一个对象function AJAX(obj){ //跨域请求        if (obj.dataType == "jsonp") {            //在这里 callback 必须是全局变量 保证函数消失的时候 这个变量不可以被销毁 //处理一下函数名(防止多个网络请求 函数名字相同 出现紊乱的情况)            var hehe = "callBack" + "_" + n

【iOS】网络请求框架封装

在使用网络请求的过程中,可以使用系统的框架.ASI.AF.MK等等,但是如果需要更换项目的网络请求框架(比如,项目之前用的ASI的框架,现在需要更换为AF),那么这将是一个浩大的工程.项目初期,怎么搭建网络请求框架,才可以让修改网络请求的工程量减到最小呢,这是我们今天要说的问题. 环境信息: Mac OS X 10.10.1 Xcode 6.1.1 iOS 8.1 正文 封装的网络请求框架一共三层: 第三层:ASI.AF或者其他网络请求方式.第二层:第二层分有基类与类目(Category)构成,

AFNetworking 2.5.x 网络请求的封装

源码地址 https://github.com/YouXianMing/Networking 说明 1. 将block形式的请求转换成用代理来处理 2. 你可以通过继承父类,改写父类的某些方法来达到转换请求字典(加密或者其他事宜等),转换获取结果的目的(加密或者其他事宜等) 3. 支持下载进度 常规请求源码 // // Networking.h // NetworkingCraft // // Created by YouXianMing on 15/6/11. // Copyright (c)

IOS开发之—— 在AFN基础上进行的网络请求的封装

网络请求的思路:如果请求成功的话AFN的responseObject就是解析好的. 1发送网络请求:get/post/或者别的 带上URL,需要传的参数 2判断后台网络状态码有没有请求成功: 3 请求成功:解析数据,刷新页面 4请求失败做处理 VPKCResponse.h VPKCResponse.m VPKCRequestManager.h VPKCRequestManager.m 定义两个文件继承NSObject. VPKCResponse.h #import <Foundation/Fou

异步网络请求的封装

1 public class MainActivity extends Activity { 2 private String PATH = "https://www.baidu.com/"; 3 private TextView mTv; 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.

http请求的封装与过滤

最近做的净水器项目,前台需要对发送的请求进行统一的封装,后台需要对请求进行统一的验证.本文记录了前台进行的http请求的封装及后台进行的http请求的过滤.前台:小程序,后台:SpringMvc. 小程序对http请求进行封装 在微信小程序wx.request官网 中的http请求是这样的: 1 2 3 4 5 6 7 8 9 10 11 12 13 wx.request({ url: 'test.php', data: { x: '' , y: '' }, header: { 'content

Android实际开发之网络请求组件的封装(OkHttp为核心)

趁周末时间撸了两天代码,将OkHttp网络请求框架进行了一次简单封装,对于实际开发非常有用.. 此次封装主要针对我们经常使用的网络请求的步骤进行封装,在已有框架OkHttp的基础上进行实际开发的封装 发送一个网络请求,有以下三个功能模块: 一:request处理 二:OkHttp核心处理 三:callback处理 我们进行网络请求组件的封装也是根据这三大模块进行封装的,下面规划一下这次封装的一个思维导图: 根据以上思维导图,我们第一步,先进行request的封装: 以下是封装的一个CommonR

对系统网络请求进行简单封装

AGConnectionNet对系统网络请求进行简单封装,可便利的进行网络请求,并将数据解析与网络请求封装在同一方法下,使用更加便利(JSON 解析采用自身解析方法, XML 解析采用第三方 ReadXML 进行解析). 方法具体参数说明 初始化方法:/*** 类方法,实例化当前数据请求对象 (单例)** @return 当前请求对象*/+ (instancetype)shareRequestData; 仅进行请求数据方法/*** 请求数据 (session 请求)** @param URLSt