网络框架(以下称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. Qt 智能指针学习(7种指针)

    Qt 智能指针学习 转载自:http://blog.csdn.net/dbzhang800/article/details/6403285 从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ ...

  2. SuperSocket使用demo

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using SuperSocket. ...

  3. Hadoop最基本的wordcount(统计词频)

    package com.uniclick.dapa.dstest; import java.io.IOException; import java.net.URI; import org.apache ...

  4. 深入了解VSTS的Unit Test测试属性

    深入的了解一下方法上带有的属性的含义.每个方法上几乎都带有TestMethod这个属性,我们直觉告诉我们,这肯定是表示被测试函数的意思.事实也正是如此,在Unit Test里,有许多测试属性,常用的如 ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系 ...

  6. [JS][jQuery]remove()与 empty()的差别

    要用到移除指定元素的时候,发现empty()与remove([expr])都能够用来实现.可细致观察效果的话就能够发现. empty()是仅仅移除了 指定元素中的全部子节点.拿$("p&qu ...

  7. 【POJ3182】The Grove BFS 最短路径周围

    意甲冠军:给定一个N*M图.,间'X'代表树木(树木必须汇集到森林,非分离),然后,'.'它代表的空间.'*'它代表的起点.现在它需要从起点.一圈,最后回到起点,所经过最少点数. 题目中给的'+'就是 ...

  8. Qt解析XML文件(QXmlStreamReader)

    (2013-08-03 10:53:53) 转载▼       如何使用QXmlStreamReader来解析格式良好的XML,Qt的文档中指出,它是一种更快.更方便的Qt自己的SAX解析器(QXml ...

  9. WPF DataGrid某列使用多绑定后该列排序失效,列上加入 SortMemberPath 设置即可.

    WPF DataGrid某列使用多绑定后该列排序失效 2011-07-14 10:59hdongq | 浏览 1031 次  悬赏:20 在wpf的datagrid中某一列使用了多绑定,但是该列排序失 ...

  10. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...