网络框架(以下称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文件夹拖入工程中即可。

iOS开发-网络框架-b的更多相关文章

  1. iOS开发网络篇—简单介绍ASI框架的使用

    iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...

  2. iOS开发网络篇—使用ASI框架进行文件下载

    iOS开发网络篇—使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载. 一.简单介绍 代码示例: #import "YYViewCo ...

  3. iOS开发网络篇—监测网络状态(转)

    文章转载自:http://www.cnblogs.com/wendingding/p/3950114.html iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时 ...

  4. iOS开发网络篇—HTTP协议

    iOS开发网络篇—HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  5. iOS开发网络篇—NSURLConnection基本使用

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

  6. iOS开发网络篇—文件的上传

    iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...

  7. iOS开发网络篇—监测网络状态

    iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行 ...

  8. 02.iOS开发网络篇—HTTP协议

    iOS开发网络篇—HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  9. iOS开发网络篇—JSON数据的解析

    iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...

随机推荐

  1. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  2. 设置U盘为第一启动顺序

    本文转载:http://u.diannaodian.com/Article/1004.html 盘安装系统的首要步骤就是设置U盘为第一启动顺序.下面电脑店官网就来说说到底如何来设置U盘启动顺序吧.   ...

  3. web.xml常用标签整理(不定期更新)

    <?xml version="1.0" encoding="UTF-8"?><!-- 标明使用的XML版本和文档编码,此项必须位于第一行,之前 ...

  4. Java设计模式01:设计模式的 分类 和 设计原则

    一.总体来说设计模式分为三大类: 创建型模式:对象的创建. 创建对象本身是比较耗时的操作,所以我们这里专门找人来帮我们创建对象,我们根据经验总结出来的设计成熟的思路模式. 结构型模式:对象的组成(结构 ...

  5. SQL Server2005 表分区三步曲(zz)

    前言 SQL Server 2005开始支持表分区,这种技术允许所有的表分区都保存在同一台服务器上.每一个表分区都和在某个文件 组(filegroup)中的单个文件关联.同样的一个文件/文件组可以容纳 ...

  6. Junit简介和常用API

    测试几个的概念 白盒测试——把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的. 回归测试——软件或环境的修复或更正后的“再测试”,自动测试工具对这类测试尤其有用. 单元测试 ...

  7. Python开发【第二十二篇】:Web框架之Django【进阶】

    Python开发[第二十二篇]:Web框架之Django[进阶]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...

  8. Asp.net主题(theme)和皮肤(skin)的使用

    asp.net 的服务器端控件提供了多种样式的设计,如果对每个控件都单独设置,是比较繁琐的事情,所以微软也提供了针对这些服务器端控件的样式管理,其实也可以通过 css来控制部分服务器端控件的样式,比如 ...

  9. 前端过滤XSS攻击

    日常开发过程中,对于存在用户交互的一些门户网站等,过滤xss攻击是必不可少的. 此处主要记录下我在工作过程中的简单处理方法. 前端过滤XSS攻击, 我这里用的是开源工程 js-xss,官网地址:htt ...

  10. Opencart 之 Registry 类详解

    Registry 中文意思是记录,登记,记录本的意思, 在opencart中他的用途就是 登记公共类.类的原型放在 system\engine文件夹下 代码很简单: <?php final cl ...