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

  • 相关阅读:
    extjs 获取Dom对象
    转: python requests的安装与简单运用
    转: python如何安装pip和easy_installer工具
    转: windows下面安装Python和pip终极教程
    JS Json数据转换
    转:永久解决火狐浏览器出现的flash版本更新问题
    python 字符编码 转换
    opencv输出图片像素值
    Mac中安装tensorflow(转)
    在linux和Mac中访问某个文件夹中所有的文件
  • 原文地址:https://www.cnblogs.com/zhouyantongiOSDev/p/4293410.html
Copyright © 2011-2022 走看看