iOS开发简记(7):网络请求模块
主流的APP都少不了跟服务器交互,网络请求是少不了的事情。
开源的网络请求库,有很多,比如:AFNetworking、YTKNetwork、PPNetworkHelper、ASIHttpRequest,等等。
这里记录AFNetworking的使用。
(1)安装afnetworking
跟使用QMUIKit一样,小程以cocoapods的方式来引入AFNetworking。
先用pod命令来查找AFNetworking的最新版本:
pod search AFNetworking
查找结果如下:
在Podfile中,加入上图红框的内容,如下:
在podfile所在目录,执行:
pod install
安装完毕,在目标项目内可以看到afnetworking的身影,比如:
(2)使用afnetworking
对于afnetworking的使用,可以参考“官方”网站:https://github.com/AFNetworking/AFNetworking
这个网页的Usage部分,详细介绍了afnetworking的使用(包括对网络状态的监听、上传下载、数据请求等等),还提供了演示代码,但是注意这里的介绍有可能跟不上afnetworking的版本(afnetworking一直在升级)。
小程使用afn的一个示例是这样的:
以上使用了manager的GET方法,这个方法是异步请求,事实上,afn的请求都是异步的。
在某些场景,或在某些代码实现上,同步请求会更方便控制,为了使用同步请求,可以考虑这个开源项目:https://github.com/paulmelnikow/AFNetworking-Synchronous
同样可以用pod来引入这个同步afn的项目(比如对于afnetworking3.x版本):
pod 'AFNetworking-Synchronous/3.x'
然后按这个项目介绍的那样,进行同步请求:
最后提一下,对于请求返回的json数据,afn已经做了解析(一般解析成dictionary)。如果想单独处理json数据,可以使用MJExternsion这个开源库,可以这样安装:
pod 'MJExtension', '~> 3.0.15.1'
使用上,请参考https://github.com/CoderMJLee/MJExtension
本文演示的APP的源码:
https://github.com/crazy0363/sound-show-zhiyin
本APP已上架AppStore,欢迎您使用。地址:https://itunes.apple.com/cn/app/%E5%A4%A9%E6%B6%AF%E4%BD%95%E5%A4%84%E8%A7%85%E7%9F%A5%E9%9F%B3/id1439297254?mt=8&from=groupmessage&isappinstalled=0
或在AppStore搜索“觅知音”或“天涯何处”,下载安装。
iOS开发简记(7):网络请求模块的更多相关文章
- iOS开发——post异步网络请求封装
IOS中有许多网络请求的函数,同步的,异步的,通过delegate异步回调的. 在做一个项目的时候,上网看了很多别人的例子,发现都没有一个简单的,方便的异步请求的封装例子.我这里要给出的封装代码,是异 ...
- iOS开发 GET、POST请求方法(NSURLSession篇)
NSURLConnection,在iOS9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: [iOS开发 GET.POST请求方法(NSURLConnectio ...
- iOS开发 GET、POST请求方法(NSURLConnection篇)
Web Service使用的主要协议是HTTP协议,即超文本传输协议. HTTP/1.1协议共定义了8种请求方法(OPTIONS.HEAD.GET.POST.PUT.DELETE.TRACE.CONN ...
- iOS开发 GET、POST请求方法:NSURLSession篇
NSURLConnection,在iOS 9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: iOS开发 GET.POST请求方法(NSURLConnectio ...
- IOS开发中使用AFNetworking请求网络数据
1.把AFNetworking的文件拖放到项目中(注意不同的版本方法不一样,本历程基于版本2013): 2.使用#import "AFNetworking.h"命令把AFNetwo ...
- iOS 多个异步网络请求全部返回后再执行具体逻辑的方法
对于dispatch多个异步操作后的同步方法,以前只看过dispatch_group_async,看看这个方法的说明: * @discussion * Submits a block to a dis ...
- iOS 处理多个网络请求的并发的情况
如何处理多个网络请求的并发的情况 一.概念 1.并发 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配 ...
- ios开发——实用技术篇&网络音频播放
网络音频播放 在日常的iOS开发中,我们通常会遇到媒体播放的问题,XCode中已经为我们提供了功能非常强大的AVFoundation框架和 MediaPlayer框架.其中AVFoundation框架 ...
- iOS 自己封装的网络请求,json解析的类
基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ...
随机推荐
- OID的编解码(即在报文中的体现)
先上干货: 我们常见到OID的地方是SNMP和MIB,实际上理论上所有对象都可以有自己的ID.已存在的ID可以在http://www.oid-info.com/查到.这些ID在报文里并非字符串或直接的 ...
- javascript 重要属性之prototype(继承)
转载猫猫小屋 http://www.maomao365.com/?p=831 在javascript中每一个函数都拥有 prototype属性,在javascript中使用prototype,可以向已 ...
- 【MM系列】SAP基本计量单位更改
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP基本计量单位更改 前言部分 ...
- c/c++ 线性表之双向链表
c/c++ 线性表之双向链表 线性表之双向链表 不是存放在连续的内存空间,链表中的每个节点的next都指向下一个节点,每个节点的before都指向前一个节点,最后一个节点的下一个节点是NULL. 真实 ...
- 编译.py为.pyc
将test.py编译为.pyc文件,然后直接使用.pyc即可,防止源码外泄 import py_compile py_compile.compile(r'c:/test.py')compileall. ...
- foreach Transform 同时chils.setParent引起的bug
Transform继承自IEnumerable,可以对它进行迭代.但当你在迭代的同时,又对child进行setParent操作时,会出现意想不到的结果. 下面是我使用foreach和getchild得 ...
- 【PAT】B1010 一元多项式求导
这道题的用例中没有负数 在输入时就进行结果的计算,忽略常数项, 顺序输出 #include<cstdio> #include<vector> using namespace s ...
- May 31. 2018 Week 22nd Thursday
The good seaman is known in bad weather. 惊涛骇浪,方显英雄本色. As we all know, the true worth of a person is ...
- mysql数据库显示 1164 table *** doesn't exist
问题出现场景: 以前mysql安装在C盘,后来重装系统,将mysql安装在了D盘,重装之前,将mysql的Data 文件夹备份了下来,mysql重新安装好之后,将原来的Data 文件夹内的数据库文件夹 ...
- ubuntu集群下ssh配置总结
最重要的前提就是:集群中的所有机器的用户名和用户组必须一样 一般做法都是在每台机器上新建用户组和用户名. 比如:sudo addgroup sparks 新建用户组sparks: sudo addus ...