zoukankan      html  css  js  c++  java
  • 网络请求的封装

    网络封装的原因:

    开发者为了开发方便,出现了大量的第三方的网络请求,我们除了在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

  • 相关阅读:
    让程序的性能提升10倍
    以正确的姿势实现一棵JavaScript菜单树
    利用php数组函数进行函数式编程
    yum安装下的nginx,如何添加模块,和添加第三方模块
    前端面试题 vue
    前端常用面试题目及答案-HTML&CSS篇
    使用after伪类,配合IE的zoom或者overflow清除浮动
    函数式编程
    在CentOS 7上安装Node.js
    node中__dirname、__filename、process.cwd()、process.chdir()表示的路径
  • 原文地址:https://www.cnblogs.com/zhouyantongiOSDev/p/4293410.html
Copyright © 2011-2022 走看看