zoukankan      html  css  js  c++  java
  • 业务层网络请求封装

    网络请求

    - 是否异步

    - 参数字典 (本身参数 系统环境参数, 默认参数)

    - 遮罩层

    - 报错提示

    - url

     

    网络参数类(RequestParam)

    userid: NSString *

    entid: NSString *

    appid: NSString *

    secret: NSString *

    paramDict: NSDictionary *

    + (instancetype) DefaultRequestParam;

    + (void)setSharedRequestParam;

     

    网络请求类 (HbbNetworkRequest)

    url: NSString *

    method: NSString *

    keyName: NSString *

    sync: BOOL 

    autoEscape: BOOL

    logTip: BOOL

    requestParam: RequestParam *

    - (instancetype)initWith url method keyName requestParam

     

    普通网络请求类

    CommonHbbNetworkRequest : HbbNetworkRequest

    url = [从环境组件中拿取common网络url]

     

    PinanBannkHbbNetworkRequest : HbbNetworkRequest

    url = [从环境组件中拿取平安银行网络url]

    二. 以前使用到的业务层封装(适用于需求比较单一的项目)

    #import <Foundation/Foundation.h>
    #import "NetworkReturnResult.h"
    #import <Hbb_NetworkFramework/Hbb_NetworkFramework.h>
    
    static const NSString *HbbNetworkRequestOptionShowHUB = @"ShowHUB";//是否显示遮罩层
    static const NSString *HbbNetworkRequestOptionHubMessage = @"HubMessage"; //遮罩层信息
    static const NSString *HbbNetworkRequestOptionHubShowType = @"HubShowType"; //遮罩层显示类型
    
    static const NSString *HbbNetworkRequestOptionShowToast = @"ShowToast"; //是否显示toast
    static const NSString *HbbNetworkRequestOptionAutoUnEscapeKey = @"AutoUnEscapeKey"; //是否自动解码Escape
    static const NSString *kHbbNetworkRequestOptionCachePolicy = @"CachePolicy"; //缓存策略
    
    /**
     *  网络请求成功
     *
     *  @param networkReturnResult 网络返回结果
     */
    typedef void (^HbbNetworkRequestSuccess)(NetworkReturnResult *networkReturnResult);
    
    /**
     *  网络请求失败
     *
     *  @param error 错误对象
     */
    typedef void (^HbbNetworkRequestFail)(NSError *error);
    
    /**
     *  货宝宝专用网络请求
     *  
     *  @author apem
     */
    
    @interface HbbNetworkRequest : NSObject
    
    /**
     *  公共请求 webService 
     *
     *  @param paramDict    参数字典
     *  @param cachePolicy 缓存策略
     *  @param successBlock 成功回调
     *  @param failBlock 失败回调
     */
    + (AFHTTPRequestOperation *)requestCommonWebService:(NSDictionary *)paramDict methodName:(NSString *)methodName cachePolicy:(NSURLRequestCachePolicy)cachePolicy successBlock:(void (^)(NetworkReturnResult *networkReturnResult))successBlock failBlock:(void (^)(NSError *error))failBlock;
    
    /**
     *  公共请求 webService, 附带默认处理
     *
     *  @param cachePolicy 缓存策略
     *  @param paramDict    参数字典
     *  @param successBlock 成功回调
     *  @param failBlock 失败回调
     */
    + (AFHTTPRequestOperation *)requestCommonWebServiceWithDefaultDeal:(UIView *)view paramDict:(NSDictionary *)paramDict methodName:(NSString *)methodName cachePolicy:(NSURLRequestCachePolicy)cachePolicy  successBlock:(void (^)(NetworkReturnResult *networkReturnResult))successBlock failBlock:(void (^)(NSError *error))failBlock;
    
    /**
     * 平安银行接口
     */
    + (AFHTTPRequestOperation *)requestPinganBankWebServiceWithDefaultDeal:(UIView *)view paramDict:(NSDictionary *)paramDict methodName:(NSString *)methodName opts:(NSDictionary *)opts successBlock:(void (^)(NetworkReturnResult *networkReturnResult))successBlock failBlock:(void (^)(NSError *error))failBlock;
    
    /**
     * OSS专用接口
     */
    + (AFHTTPRequestOperation *)requestOSSWebServiceWithDefaultDeal:(UIView *)view paramDict:(NSDictionary *)paramDict methodName:(NSString *)methodName opts:(NSDictionary *)opts successBlock:(void (^)(NetworkReturnResult *networkReturnResult))successBlock failBlock:(void (^)(NSError *error))failBlock;
    
    /**
     *  公共请求 webService, 附带默认处理
     *
     *  @param options 其他参数 (HbbNetworkRequestOptionShowHUB,HbbNetworkRequestOptionHubMessage,HbbNetworkRequestOptionHubShowType)
     *  @param cachePolicy 缓存策略
     *  @param paramDict    参数字典
     *  @param successBlock 成功回调
     *  @param failBlock 失败回调
     */
    + (AFHTTPRequestOperation *)requestCommonWebServiceWithDefaultDealWithOptions:(NSDictionary *)options view:(UIView *)view paramDict:(NSDictionary *)paramDict methodName:(NSString *)methodName cachePolicy:(NSURLRequestCachePolicy)cachePolicy successBlock:(void (^)(NetworkReturnResult *networkReturnResult))successBlock failBlock:(void (^)(NSError *error))failBlock;
    
    /**
     *  任何请求 webService, 附带默认处理
     *
     *  @param url          链接
     *  @param cachePolicy 缓存策略
     *  @param paramDict    参数字典
     *  @param  options    其他信息 (HbbNetworkRequestOptionShowHUB,HbbNetworkRequestOptionHubMessage,HbbNetworkRequestOptionHubShowType)
     *  @param successBlock 成功回调
     *  @param failBlock 失败回调
     */
    + (AFHTTPRequestOperation *)requestAnyWebServiceWithDefaultDealWithURL:(NSString *)url view:(UIView *)view paramDict:(NSDictionary *)paramDict methodName:(NSString *)methodName cachePolicy:(NSURLRequestCachePolicy)cachePolicy options:(NSDictionary *)options successBlock:(void (^)(NetworkReturnResult *networkReturnResult))successBlock failBlock:(void (^)(NSError *error))failBlock;
    
    @end

    这种以面向过程的工厂式的方法

    优点: 

    1. 调用方便

    2. 结构简单

    缺点: 

    1. 方法必传参数过多

    2. 当新增一个参数, 往往需要添加一个方法, 使方法膨胀

  • 相关阅读:
    龙井和碧螺春的功效与作用
    064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法
    063 01 Android 零基础入门 01 Java基础语法 08 Java方法 01 无参无返回值方法
    062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用
    061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结
    060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序
    059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环
    058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值
    057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和
    056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
  • 原文地址:https://www.cnblogs.com/apem/p/5332592.html
Copyright © 2011-2022 走看看