• 网络请求的封装


    网络封装的原因:

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

  • 相关阅读:
    Algorand算法实现(一)
    什么是跨链?为什么要跨链?
    Web配置简单记录(多更新)
    Web前端常用调优
    回文素数
    postman接口请求快速新建
    两台虚拟机如何ping通
    vue动态改变标题
    js正则匹配版本号V1.0.0
    js获取年月日星期时分秒
  • 原文地址:https://www.cnblogs.com/zhouyantongiOSDev/p/4293410.html
Copyright © 2020-2023  润新知