AFNetworking 开发中常用的总结

全面解析iOS中AFNetworking第三方框架应用 本文还有配套的精品资源,点击获取 简介:AFNetworking是iOS开发中广泛使用的网络请求库,简化了iOS应用中的网络编程,支持HTTP请求的多种方法,并提供异步处理、缓存、上传下载等功能。本文详细介绍了如何通过CocoaPods或手动导入配置AFNetworking,以及如何使用该框架进行GET、POST请求、文件上传下载、自定义请求操作、请求缓存、安全性配置、进度... 阅读详情
  • 由于iOS 7 和 Mac OS X 10.9 Mavericks 中 一个显著的变化就是对 Foundation URL 加载系统的彻底重构。而且现在AFN 3.x版本 完全摒弃了NSURLConnection,而使用了NSURLSession。

  • 关于NSURLConnection和NSURLSession的用法,读者可以继续关注本人的博客,会马上进行补充。

  • 下载方式:1、直接到github官网上搜索”AFN”,受欢迎程度高的自然就是。2、使用cocoapods集成到你的项目中去,关于cocoapods的安装和使用方法,请读者阅读本人的博文:《CocoaPods安装和使用详解》


1、AFN 的基本使用

1-1 、步骤:
1-1-1、创建会话管理者
  是AFHTTPSessionManager作为会话管理者,用manager创建
  不是AFURLSessionManager,而且AFURLSessionManager无manager方法
1-1-2、开始请求,URL都不需要自己创建了。
   第一个参数: 请求路径:
   以前:http://120.25.226.186:32812/video?type=JSON http://120.25.226.186:32812/login?username=520it&pwd=520it&type=JSON
  协议头+主机地址+接口名称+?+参数&参数
  现在:http://120.25.226.186:32812/video
   http://120.25.226.186:32812/login
  协议头+主机地址+接口名称
  第二个参数: 要传递的参数(字典)
  第三个参数: progress:进度 nil
  第四个参数: success:成功,请求成功的回调
    task:请求任务
    responseObject:响应体信息,而且内部已经进行了序列化处理
  第五个参数:failure 请求失败的回调
  task:请求任务
  error:如果失败,那么error有值

                 

1-2、源码展示:
这里写图片描述

2、AFN 文件的下载

2-1、步骤:

    第一个参数:请求对象
    第二个参数:progress 进度信息的回调
    downloadProgress
    completedUnitCount:已经下载的数据大小
    totalUnitCount”:数据的总大小
   第三个参数:destination 有返回值
    传递一个目标路径(NSURL),AFN内部会自动执行剪切处理
       targetPath:临时路径
      response: 响应头信息
   第四个参数:completionHandler 下载完成之后调用
   
   
2-2、源码展示

这里写图片描述

3、AFN 文件的上传

这里写图片描述

4、AFN 的使用技巧

在实际开发中,是不会在控制器中直接调用框架的网络请求,比如:如果在网络请求的某个控制器中直接调用了这个AFN框架,会出现后期不好维护的情况,比如一般企业开发的app项目会有十来个二十来  个ViewController,大部分控制器都会需要活数据,也就是需要通过请求网络来获取数据,那么在多个控制器都导入和使用了AFN框架,而实际开发需求可能会让你换掉网络请求框架,要将这个AFN框架换成  ASI框架,这样可想而知,作为码农都要哭了。

那么可行性方案,也是企业开发中常常会用到的方法:
  在需要网络请求的控制器和网络请求框架之间建立一个工具类,这个工具类可以是类别,也可以是普通类,然后将网络请求的方法简易封装起来,最好能应对不同情况和不同的数据的请求,并且能实现,当  我将AFN框架替换成ASI框架的时候,控制器里调用的这个工具类的方法完全不需要改变,要改变的只是工具类中将AFN替换成ASI框架。总之,创建一个网络请求工具类,能够让所有的控制器不依赖底层框架,只依赖这个工具类。

5、AFN 序列化相关

5-1、JSON解析,内部会自动对JSON数据进行反序列化处理,通过响应头信息返回字典对象(可以打印出其类型和字典元素值查看),不需要手动设置解析方式。
这里写图片描述

5-2、XML解析需要协议辅助解析XML,当然也可以使用我的封装好的能实现XML直接转模型字典的工具类”HYXMLParser”。

     需要告诉AFN以XML的方式解析数据。

     GET方法中要用有NSXMLParser参数的解析方法。

这里写图片描述

5-3、直接返回服务器的HTML数据格式,记得将返回的数据要设置Encoding为NSUTF8StringEncoding,然后直接输出。

     需要手动设置告诉AFN解析方式为不解析,即AFHTTPResponseSerializer serializer。

这里写图片描述

5-4、对于返回的是NSData格式的数据,比如网络上的返回的图片、视频等资源二进制数据。

     需要手动设置告诉AFN解析方式为不解析,即AFHTTPResponseSerializer serializer。

这里写图片描述

6、AFN 网络监听

这里写图片描述

AlphaPose复现配置教程 AlphaPose是一种准确的多人姿态估计器,这是第一个在COCO数据集上达到70+ mAP (75 mAP)和在MPII数据集上达到80+ mAP (82.1 mAP)的开源系统。为了匹配跨帧的同一人的姿态,我们还提供了一种高效的在线姿态跟踪器,称为Pose Flow。这是第一个在PoseTrack挑战数据集上达到60+ mAP (66.5 mAP)和50+ MOTA (58.3 MOTA)的开源在线姿态跟踪器。AlphaPose支持Linux和Windows操作系统!指路👉。 阅读详情

相关推荐

MIT IDSS深度解析:跨学科融合与系统科学实践

麻省理工学院的IDSS(Institute for Data, Systems, and Society, IDSS)是一个致力于通过先进分析方法推动教育与研究的前沿机构。它将工程学、信息科学和数据科学的方法与社会科学的分析方法相结合,以应对复杂的社会挑战。

AllenLV的博客 2085

【iOS】使用AFNetworking进行网络请求

在暑假写天气预报项目时,我们已经接触到网络请求,当时我们是使用URLSession类,即Foundation框架中用于管理和配置网络连接的API,来完成对实时天气预报数据的请求,现在我们来学习一种更方便的网络请求方式——使用一个单例通过AFNetworking来实现网络请求。

2301_80467753的博客 1847

手把手教你搭建自己的 API 中转站

本文介绍了如何通过开源工具CLIProxyAPI(CPA)搭建本地AI模型代理服务,解决多工具切换、海外API访问困难等问题。CPA可将OpenAI、Gemini等不同服务的API统一封装,用户只需配置一次账号信息,所有客户端即可通过标准接口访问。文章详细讲解了CPA的下载安装、配置修改、账号导入及客户端连接方法,并强调其经济性、可控性和集中管理优势。通过自建中转站,用户可避免第三方服务的质量风险,实现多账号负载均衡,构建个人AI资源池。最后提供了网络配置等实用建议,帮助开发者高效使用AI编程工具。

DongJiYong_20的博客 1799

iOS开发之网络编程:AFNetworking3.0使用简介

一、AFNetworking的集成 目前使用人数最多的第三方网络库,没有之一。从开始的NSURLConnection到现在的NSURLSession,它都一直保持着与苹果的步调一致,而由它也衍生出大量的相关第三方网络功能库,不仅仅因为他的可靠,好用,一直保持着维护更新,也是为什么它这么受到广大程序员的青睐。 下面先来给我们的工程集成AFNetworking(这里用的是cocoaPods

magical_code的博客 494

QCM6490平台DDR测试:从QDUTT配置到眼图分析的实战指南

本文详细介绍了QCM6490平台DDR测试的全流程,从QDUTT工具安装配置到眼图分析,提供了实战操作指南和常见问题解决方案。通过具体案例分享,帮助工程师掌握DDR测试技巧,确保内存稳定性,特别适用于物联网和边缘计算设备的开发调试。

weixin_33910191的博客 458

【机器人】线性方程最小二乘解法对机械臂DH参数进行标定

1.前言 看了一篇文章,觉得里面的DH参数标定法讲的很清晰,便使用Matlab复现了一下,效果还可以,特写此文记录。 2.原理 2.1.误差最佳值的最小二乘计算 有研究结果表明:几乎95%的机器人位置误差都是由机器人内部运动学的不准确描述引起的,所以对DH模型参数进行标定是很有必要的。 DH参数物理含义:选自《机器人学、机器视觉与控制-Matlab基础》 当DH参数确定后,我们...

要恰饭得嘛 1万+

AFN与HTTPS之一:macOS系统下启动 Apache 服务并配置 HTTPS功能

一、启动Apache服务 首先打开终端,输入: sudo apachectl start 然后输入密码,回车。 打开Safari,在地址栏中输入localhost,如果出现如下页面,那么恭喜你,apache启动成功 二、制作自己的签名证书 1、生成私钥 打开终端,输入 sudo openssl genrsa 1024 > server.key 输出 Generating ...

weixin_34248849的博客 179

OpenClaw 子代理配对失败问题分析与解决方案

OpenClaw子代理配对失败问题分析与解决方案 问题核心在于agent设备权限不足,仅有operator.approvals权限而缺少operator.admin权限,导致子代理启动时形成权限死锁。本文提供三种解决方案: 直接编辑设备配对文件(推荐):修改本地JSON文件,为agent设备添加完整operator.admin权限,操作简单快捷。 标准重新配对流程:删除现有agent设备后重新配对,通过正常审批流程获取完整权限,符合系统安全设计。 修改源码降低权限要求(仅限开发环境):调整子代理代码避免强制

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 149

AFNetworking框架的使用和Cocoapods的安装使用

一 AFNetworking框架的使用AFN框架的内部结构:+ NSURLSession1 >AFURLSessionManager2 >AFHTTPSessionManager(封装了常用的 HTTP 方法)—-GET;POST;UIKit + AFNetworking 分类;NSProgress :利用KVO+ 半自动的序列化&反序列化的功能AFURLRequestSerialization :

不良少年 1512

一分钟理解 “熔断“, “限流“ 与 “降级“

熔断,本质是一种“故障隔离”机制,用于当某个依赖服务出现持续故障(如响应超时、错误率飙升)时,暂时切断对该服务的调用,避免故障扩散到整个系统,防止“雪崩效应”;待依赖服务恢复正常后,再逐步恢复调用。其核心逻辑参考了现实中的“电路保险丝”——电路过载时,保险丝熔断,切断电路,保护电器不被烧毁;故障排除后,更换保险丝,电路恢复正常。闭合状态(Closed):正常状态,请求可以正常调用依赖服务,同时监控调用的错误率、超时率等指标。打开状态(Open)

h a 6 6 6 c k 为 你解决复杂难题! 1464

使用cocoapods集成AFNetworking开源框架

什么是AFNetworking? AFNetworking是一款用于网络通信的开源框架。在使用cocoa提供的NSURL实现app的网络请求的时候,当我们的请求特别复杂,逻辑也特别复杂的时候,会使代码量骤增,重复代码特别多,AFNetworking就解决了这种代码使用不优雅的问题。它通过非常简单的接口和回调,让我们使用者在开发网络请求方面的工作时非常方便。 使用系统的第三方资源库带来了一个问题,就是如何管理和依赖AFNetworking? 在介绍后续内容之前,我们需要先了解两个概念,一个是project,一

Super_CJL的博客 592

python实现MACD策略背离点的判断 (附完整源码)

python实现MACD策略背离点的判断 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 665

iOS常用三方库 AFNetworking及封装

iOS常用三方库(1)AFNetworking AFNetworking是iOS开发中最常用的一种网络请求三方库

IT_HE的博客 652

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

AFNetWorking使用及二次封装的好处

简述AFNetWorking使用以及二次封装带来的好处AFNetWorking作为目前使用较为广泛的一个开源的网络框架,它优秀的框架结构和简易的使用方法所带来的方便让很多ios开发者毫不犹豫的选择了使用它。相对于苹果官方自身的NSURLConnection(ios9.0后用NSURLSession取代)来说,官方的网络请求API在使用的时候不如经过AF封装过后的直接使用来得方便与灵活。下面就先来简单

HR_Apple的博客 1441

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

AFNetworking源码之AFSecurityPolicy模块

CSND_GO 395

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【无限互联】ios开发之AFNetWorking

一、介绍:AFNetWorking是IOS重要的框架之一,用于实现访问服务器,请求网络数据,上传数据等功能。 二、原理: 三、使用:在使用AFNetWorking之前,需要去下载这个框架,个人推荐去http://afnetworking.com/官网下载,目前最新版的是2.4.1版本。下载之后打开,将里面的AFNetWorking       文件夹拷贝至你的程序中并且在在Supporting

wangda1318的专栏 353

ios开发循环网络请求_iOS开发之网络请求(基于AFNetworking的再封装)

最近一直很忙也没有什么时间写博客了。放假了休息一下,就写一篇博客来总结一下最近做项目中出现过的问题吧!!!首先,在项目中我的起到了什么作用,无非就是把美工(UI设计师)给我们的图显示出来,然后再和服务器进行交互。那个我们和服务器怎么交互呢?最简单的方式就是说话呗,但是我们要跟服务器说话必须通过我们彼此能听的懂的话来交流,也就需要制定很多的协议了(http,tcp,udp等,这个有兴趣的朋友可以了解...

weixin_39747568的博客 324

ios开发值AFNetworking开源库的使用

  ios开发之AFNetworking开源库的使用   1.简介   常见的处理网络请求的方式   (1)NSURLConnection    (2)ASIHttpRequest    (3)AFNetworking    (4)MKNetworkKit   (2)配置和使用     库文件拖入工程中, 包含头文件   #import"AFNetworking.h...

weixin_30745641的博客 97

iOS 使用AFNetworking

iOS 使用AFNetworking:

wsjshx的专栏 423

【iOS】AFNetworking源码解析--请求实现(一)

AFNetworking是iOS、macOS、watchOS和tvOS的一个令人愉快的网络库。它建立在基础URL加载系统之上,扩展了构建到Cocoa中的强大的网络高级抽象。它有一个模块化的体系结构,具有设计良好、功能丰富的API,使用起来很愉快。然而,也许最重要的特点是,每天都在使用AFNetworking并为其做出贡献的开发人员组成了一个令人惊叹的社区。AFNetworking为iPhone、iPad和Mac上一些最受欢迎、广受好评的应用提供了动力。

zdsey的博客 1441

AFNetworking使用

简介 AFNetworking,是对NSURLConnection、NSURLSession的一层封装 常用类 AFHTTPRequestOperationManager 是AFN中最重要的对象之一 封装了HTTP请求的常见处理 GET\POST请求 解析服务器的响应数据 GET\POST请求 GET请求 - (AFHTTPRequestOp...

weixin_30270889的博客 91

AFNetworking原理及常用操作

AFN的六大模块 NSURLConnection,主要对NSURLConnection进行了进一步的封装,包含以下核心的类: AFURLConnectionOperationAFHTTPRequestOperationManagerAFHTTPRequestOperation NSURLSession,主要对象NSURLSession对象进行了进一步的封装,包含以下核心的

dong_vip的博客 506

对比iOS网络组件:AFNetworking VS ASIHTTPRequest

对比iOS网络组件:AFNetworking VS ASIHTTPRequest 在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题。一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性。这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等。 那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组

上善若水 1063

AFNetworking、ASIHTTPRequest中SSL的使用

首先介绍下AFNetworking中的使用: 2.0要注意个地方:IOS7及其以后,采用AFHTTPSessionManager,IOS7之前采用AFHTTPRequestOperationManager。 以AFHTTPSessionManager为例,代码如下: AFHTTPSessionManager *httpClient = [AFHTTPSessionManager mana

追梦 3411

afn原理 ios_iOS AFNetworking网络框架详解

导语:众所周知,AFNetworking是目前IOS开发中非常受欢迎的第三方网络通信类库,同时AFNetworking对苹果官方NSURLConnection和NSURLSession进行了封装,使用起来可以说是简单的"令人发指".AFNetworking有关请求与响应的信息请求:(序列化)AFURLRequestSerializationAFHTTPRequestSerializer(默认)传输...

weixin_33600816的博客 539
上一篇: App上线被拒的各种原因(英文及翻译)
下一篇: TextView添加placeholder属性
Levilly
博客等级 码龄10年 6粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值