zoukankan      html  css  js  c++  java
  • iOS开发-网络框架-b

    网络框架(以下称NJAFNetworking)是基于AFNetworking框架的简单封装,基本功能包括POST请求,GET请求,上传文件,下载文件,网络状态,缓存等。

    为什么要使用NJAFNetworking?

    在使用AFNetworking的时候我们会发现对外开发接口比较多,当项目需求涉及到缓存,以及网络判断的时候,我们都无从下手。然NJAFNetworking框架将这些过多的开发接口封装到一起,让我们使用起来更为方便。

    • 优点:
      • 网络状态已经封装,在通过GET/POST请求会回调;
      • 缓存已经封装,当GET/POST请求失败后会回调;
      • 开发接口少,只需调用相应功能功能的接口即可。

    NJAFNetworking究竟是什么?

    • 配置公共的请求头(可以不配置)

        /**
         *  配置公共的请求头,用于区分请求来源,需要与服务器约定好
         *  @param httpHeaders      如@{"client" : "iOS"}
         */
        + (void)configCommonHttpHeaders:(NSDictionary *)httpHeaders;
    • 更新请求接口基础url(如果服务器地址有多个,可以不配置)

        /**
         *  更新请求接口基础url(如果服务器地址有多个)
         *  @param baseUrl 请求接口基础url
         */
        + (void)updateBaseUrl:(NSString *)baseUrl;
    • GET请求接口
        /**
         *  GET请求接口
         *  @param url          访问地址路径,如/user/index/login
         *  @param refreshCache 是否刷新缓存,YES
         *  @param params       需要传的参数,如@{@"user_id" :@(80011)}
         *  @param progress     进度回调,
         *  @param success      接口请求响应成功回调
         *  @param fail         接口请求响应失败回调
         *  @return             NSURLSessionTask
         */
        + (NJURLSessionTask *)getWithUrl:(NSString *)url
                            refreshCache:(BOOL)refreshCache
                                  params:(NSDictionary *)params
                                progress:(NJLoadProgress)progress
                                 success:(NJResponseSuccess)success
                                    fail:(NJResponseFail)fail;
    • POST请求接口
        /**
         *  POST请求接口
         *  @param url          访问地址路径,如/user/index/login
         *  @param refreshCache 是否刷新缓存,YES
         *  @param params       需要传的参数,如@{@"user_id" :@(80011)}
         *  @param progress     进度回调,
         *  @param success      接口请求响应成功回调
         *  @param fail         接口请求响应失败回调
         *  @return             NSURLSessionTask
         */
        + (NJURLSessionTask *)postWithUrl:(NSString *)url
                             refreshCache:(BOOL)refreshCache
                                   params:(NSDictionary *)params
                                 progress:(NJLoadProgress)progress
                                  success:(NJResponseSuccess)success
                                     fail:(NJResponseFail)fail;
    • 图片上传接口
        /**
         *  图片上传接口
         *  @param image        图片对象
         *  @param url          上传图片路径,如/user/images
         *  @param filename     文件名字,默认为当前时间yyyyMMddHHmmss.jpg
         *  @param name         约定关联名称,如image
         *  @param mimeType     默认iamge/jpeg
         *  @param parameters   需要传的参数,如@{@"user_id" :@(80011)}
         *  @param progress     上传进度回调
         *  @param success      上传成功回调
         *  @param fail         上传失败回调
         *  @return             NSURLSessionTask
         */
        + (NJURLSessionTask *)uploadWithImage:(UIImage *)image
                                          url:(NSString *)url
                                     filename:(NSString *)filename
                                         name:(NSString *)name
                                     mimeType:(NSString *)mimeType
                                   parameters:(NSDictionary *)parameters
                                     progress:(NJLoadProgress)progress
                                      success:(NJResponseSuccess)success
                                         fail:(NJResponseFail)fail;
    • 上传文件
        /**
         *  上传文件
         *  @param url              上传文件路径,如/user/images
         *  @param uploadingFile    待上传文件路径,如/user/images
         *  @param progress         进度回调
         *  @param success          上传成功回调
         *  @param fail             上传失败回调
         *  @return                 NSURLSessionTask
         */
        + (NJURLSessionTask *)uploadFileWithUrl:(NSString *)url
                                  uploadingFile:(NSString *)uploadingFile
                                       progress:(NJLoadProgress)progress
                                        success:(NJResponseSuccess)success
                                           fail:(NJResponseFail)fail;
    • 下载文件
        /**
         *  下载文件
         *  @param url              下载文件URL
         *  @param saveToPath       下载到那个路径下
         *  @param progress         下载进度
         *  @param success          下载成功后的回调
         *  @param fail             下载失败后的回调
         *  @return NSURLSessionTask
         */
        + (NJURLSessionTask *)downloadWithUrl:(NSString *)url
                                   saveToPath:(NSString *)saveToPath
                                     progress:(NJLoadProgress)progress
                                      success:(NJResponseSuccess)success
                                         fail:(NJResponseFail)fail;

    如何使用NJAFNetworking?

    • NJAFNetworking支持CocoaPods(CocoaPods是什么?)
      写在Podfile文件中,

        source 'https://github.com/CocoaPods/Specs.git'
        inhibit_all_warnings!
      
        target "这里写你的工程名字" do
        pod 'NJAFNetworking', '~> 1.0.1'
        end
    • 下载NJAFNetworking(下载地址
      下载完后将NJAFNetworking文件夹拖入工程中即可。

  • 相关阅读:
    MyCAT-安装配置读写分离
    MYSQL-GTID复制
    Harbor使用
    ansible-playbook(合集)
    Ansible批量添加主机
    MyCAT+MGR
    随笔说明
    常用sql语句
    接口测试基础
    正则表达式
  • 原文地址:https://www.cnblogs.com/isItOk/p/5608291.html
Copyright © 2011-2022 走看看