iOS网络编程 (第三方开源库)----->AFNetworking

CrewAI 多 Agent 实战包 v1(Mock免Key跑通+通义千问可选+流水线样例) 本资源是 CrewAI 风格多 Agent 可运行工程包:研究→写作→审校等流水线样例。无 API Key 时自动降级 Mock 引擎跑通;有 DASHSCOPE_API_KEY 时可接真实 CrewAI + 通义千问。含中文 README、samples、smoke 留档、单元测试。本包不含密钥。关联博客:https://blog.youkuaiyun.com/mtl1994 立即下载

AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目。

       @原文链接https://github.com/AFNetworking/AFNetworking,我在此基础上了点配置修改

       @介绍

  1.支持HTTP请求和基于REST的网络服务(包括GET、POST、 PUT、DELETE等)
  2.支持ARC
  3.要求iOS 5.0及以上版本

  4.UIKit扩展


       @配置

       1.下载AFNetworking,将2个文件夹:AFNetworking和UIKit+AFNetworking拖入工程

       2.导入以下库文件:CFNetwork、Security、SystemConfiguration、MobileCoreServices

       3.如果你以前用的是1.0版本,那么AFNetworking 2.0 Migration Guide能帮助你

       4.如果你是用CocoaPods配置的,那么

           platform:ios,'7.0'

           pod"AFNetworking","~>2.0"


           @使用

           1.HTTP请求操作

           AFHTTPRequestOperationManager封装的共同模式与web应用程序通过HTTP通信,包括创建请求,响应序列化,网络可达性监控、运营管理和安全,以及请求。

           *GET请求

[objc]  view plain copy
  1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  2. [manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  3.     NSLog(@"JSON: %@", responseObject);  
  4. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  5.     NSLog(@"Error: %@", error);  
  6. }];  

            *POST请求

[objc]  view plain copy
  1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  2. NSDictionary *parameters = @{@"foo": @"bar"};  
  3. [manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  4.     NSLog(@"JSON: %@", responseObject);  
  5. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  6.     NSLog(@"Error: %@", error);  
  7. }];  
            *POST请求(多表)

[objc]  view plain copy
  1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  
  2. NSDictionary *parameters = @{@"foo": @"bar"};  
  3. NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];  
  4. [manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {  
  5.     [formData appendPartWithFileURL:filePath name:@"image" error:nil];  
  6. } success:^(AFHTTPRequestOperation *operation, id responseObject) {  
  7.     NSLog(@"Success: %@", responseObject);  
  8. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  9.     NSLog(@"Error: %@", error);  
  10. }];  
             

             2.AFURLSessionManager(NSURLSession详细见网络编程(6))

             创建和管理制定的NSURLSession对象NSURLSessionConfiguration对象必须实现<NSURLSessionTaskDelegate>, <NSURLSessionDataDelegate>, <NSURLSessionDownloadDelegate>, <NSURLSessionDelegate>协议

              *创建一个下载任务

[objc]  view plain copy
  1. NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];  
  2. AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];  
  3.   
  4. NSURL *URL = [NSURL URLWithString:@"http://example.com/download.zip"];  
  5. NSURLRequest *request = [NSURLRequest requestWithURL:URL];  
  6.   
  7. NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {  
  8.     NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];  
  9.     return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];  
  10. } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {  
  11.     NSLog(@"File downloaded to: %@", filePath);  
  12. }];  
  13. [downloadTask resume];  
                 *创建一个上传任务

[objc]  view plain copy
  1. NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];  
  2. AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];  
  3.   
  4. NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];  
  5. NSURLRequest *request = [NSURLRequest requestWithURL:URL];  
  6.   
  7. NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];  
  8. NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {  
  9.     if (error) {  
  10.         NSLog(@"Error: %@", error);  
  11.     } else {  
  12.         NSLog(@"Success: %@ %@", response, responseObject);  
  13.     }  
  14. }];  
  15. [uploadTask resume];  
              *创建一个带多表,进度的上传任务

[objc]  view plain copy
  1. NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {  
  2.         [formData appendPartWithFileURL:[NSURL fileURLWithPath:@"file://path/to/image.jpg"] name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpeg" error:nil];  
  3.     } error:nil];  
  4.   
  5. AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];  
  6. NSProgress *progress = nil;  
  7.   
  8. NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {  
  9.     if (error) {  
  10.         NSLog(@"Error: %@", error);  
  11.     } else {  
  12.         NSLog(@"%@ %@", response, responseObject);  
  13.     }  
  14. }];  
  15.   
  16. [uploadTask resume];  
               *创建一个数据流Data任务

[objc]  view plain copy
  1. NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];  
  2. AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];  
  3.   
  4. NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];  
  5. NSURLRequest *request = [NSURLRequest requestWithURL:URL];  
  6.   
  7. NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {  
  8.     if (error) {  
  9.         NSLog(@"Error: %@", error);  
  10.     } else {  
  11.         NSLog(@"%@ %@", response, responseObject);  
  12.     }  
  13. }];  
  14. [dataTask resume];  
              

                3.网络监测(一般会用另一个网络监测类,Reachability,还有JSON解析方法,反正我也一般不用,自行脑补)

                AFNetworkReachabilityManager监控网络领域的可达性,WWAN地址和WiFi接口.

                *当前网络状态

[objc]  view plain copy
  1. [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {  
  2.     NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));  
  3. }];  

                             *HTTP Manager 可达性

[objc]  view plain copy
  1. NSURL *baseURL = [NSURL URLWithString:@"http://example.com/"];  
  2. AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];  
  3.   
  4. NSOperationQueue *operationQueue = manager.operationQueue;  
  5. [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {  
  6.     switch (status) {  
  7.         case AFNetworkReachabilityStatusReachableViaWWAN:  
  8.         case AFNetworkReachabilityStatusReachableViaWiFi:  
  9.             [operationQueue setSuspended:NO];  
  10.             break;  
  11.         case AFNetworkReachabilityStatusNotReachable:  
  12.         default:  
  13.             [operationQueue setSuspended:YES];  
  14.             break;  
  15.     }  
  16. }];  
                       

                  4.AFHTTPRequestOperation

                  AFHTTPRequestOperation是使用HTTP或HTTPS协议的AFURLConnectionOperation的子类。
它封装的获取后的HTTP状态和类型将决定请求的成功与否。虽然AFHTTPRequestOperationManager通常是最好的去请求的方式,但是AFHTTPRequestOpersion也能够单独使用。

                               *GET请求

[objc]  view plain copy
  1. NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"];  
  2. NSURLRequest *request = [NSURLRequest requestWithURL:URL];  
  3. AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];  
  4. op.responseSerializer = [AFJSONResponseSerializer serializer];  
  5. [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {  
  6.     NSLog(@"JSON: %@", responseObject);  
  7. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {  
  8.     NSLog(@"Error: %@", error);  
  9. }];  
  10. [[NSOperationQueue mainQueue] addOperation:op];  
 
                              *批量多请求

[objc]  view plain copy
  1. NSMutableArray *mutableOperations = [NSMutableArray array];  
  2. for (NSURL *fileURL in filesToUpload) {  
  3.     NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {  
  4.         [formData appendPartWithFileURL:fileURL name:@"images[]" error:nil];  
  5.     }];  
  6.   
  7.     AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];  
  8.   
  9.     [mutableOperations addObject:operation];  
  10. }  
  11.   
  12. NSArray *operations = [AFURLConnectionOperation batchOfRequestOperations:@[...] progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) {  
  13.     NSLog(@"%lu of %lu complete", numberOfFinishedOperations, totalNumberOfOperations);  
  14. } completionBlock:^(NSArray *operations) {  
  15.     NSLog(@"All operations in batch complete");  
  16. }];  
  17. [[NSOperationQueue mainQueue] addOperations:operations waitUntilFinished:NO];  


         @其他资料

                 1.官网

                 2.英文文档


Unity实时控制佳能单反拍照全流程(附EDSDK 3.6.1配置避坑指南) 本文详细介绍了在Unity中实时控制佳能单反相机进行拍照的完整流程,重点提供了EDSDK 3.6.1的配置与避坑指南。内容涵盖从SDK获取、环境搭建、相机初始化、参数设置到实现拍照控制,并深入探讨了实时取景的延迟优化方案与资源管理,旨在帮助开发者高效集成专业相机,提升AR/VR及摄影测量等应用的视觉输入质量。 阅读详情

相关推荐

Cadence Allegro 17.4学习记录开始01-原理图Capture CIS 17.4

Orcad的学习记录

qq_31444421的博客 1万+

AFNnetworking快速教程,官方入门教程译

AFNetworking官网入门教程简单翻译,学习 AFNetworking 是一个能够快速使用的ios和mac os x下的网络框架,它是构建在Foundation URL Loading System之上的,封装了网络的抽象层,可以方便的使用,AFNetworking是一个模块化架构,拥有丰富api的框架。 一、HTTP请求与操作: 1、AFHTTPRequestOperat

codepython的专栏 557

Sparse4Dv3

instance_feature也设置为nn.Parameter。修正分支2*(linear->relu->linear->relu->layernorm)->linear->scale,分类分枝2*(linear->relu->layernorm)->linear(256,9),质量评估分枝2*(linear->relu->layernorm)->linear(256,2)。每组两类instance,1是加上范围(-x,x)内均匀分布噪声,2是加上(-2x,-x)U(x,2x)范围内均匀分布噪声。

yuanl15的博客 1351

AFNetworking使用入门(随笔和链接)

AFNetworking是一个流行的iOS网络封装库,包括了常用的HTTP协议的使用接口,用起来很方便。被国内外很多大型APP应用。 1.安装 1)https://github.com/AFNetworking/AFNetworking 下载下来并解压 2)以group方式,AFNetwork下面的文件都加入到工程中 3)在需要引用的地方#import “AFNetwork

pptpipsec的博客 614

WPF窗口定位技巧:从基础到高级的三种实现方法

本文详细解析WPF窗口定位的三种核心方法:屏幕居中(CenterScreen)、父窗口居中(CenterOwner)和手动定位(Manual)。通过对比其适用场景、实现代码与注意事项,帮助开发者根据实际需求选择最佳方案,从而提升WPF应用程序的用户体验与专业度。

weixin_29224309的博客 272

《雷达入门课 》系列文章(5)线性调频连续波雷达基本原理(第1讲)

S=B/Tc,是调频斜率。这里的混频公式推导过程比较简单,具体的混频过程如果感兴趣可以看下面粗略的推导,混频的本质就是频谱搬移,分为上变频和下变频,一般我们用下变频,即差频信号,因此需要一个低通滤波器即可滤出我们所需要的信号。答案就是因为中频信号能够映射出目标的距离信息,换句话说就是目标的距离不一样,返回的时间τ也就不一样,因此中频信号的频率大小也就不一样,可以说距离和中频信号是成映射关系的。中频只是表示信号频段的程度词,不是表示信号的状态词,意思就是说中频是指信号的频率不是很高,正好处于中间的地位。

【调皮连续波】雷达技术领域知识博主 6022

AFNetworking 介绍和简单实用

AFNetworking github AFNetworking AFNetworking 是一个网络请求封装框架,使用简单,功能强大; 在AFNetworking 3.x版本 通过封装NSURLSession,通过简单的API是我们可以简单快捷实用。 AFNetworking模块 NSURLSession 封装NSURLSession的模块 Reachability 网络状态 ...

wangchuanqi256的博客 694

最新扣子智能体教程:手把手教你接入抖音评论区,实现自动回复

摘要:本文介绍如何利用扣子(Coze)平台搭建智能体实现抖音评论自动回复。从准备工作(账号注册、权限申请)到智能体创建(提示词优化、模型选择),再到抖音API接入和自动回复逻辑设置,详细说明了每个步骤的操作方法。文章还提供了回复模板示例和优化建议,帮助提升互动效率。通过这套方案,创作者可以显著减轻评论区管理压力,增强用户互动体验。(149字)

互联网架构师笔记 984

AFNetworking的使用

1,下载AFNetworking 库https://github.com/AFNetworking/AFNetworking 2,解压把下面的文件导入工程里面 3,在需要用到的地方倒入文件头#import “AFNetworking.h” 4,建一个管理它的类 .h文件 @interface MyAFNetworking : NSObject @property (assign,n

搬砖 8136

【Unity实战篇】| 游戏轮播图效果,多种实现思路及完整教程

在众多游戏的主界面、商城、图鉴或关卡选择界面中,我们常常能看到轮播图的身影。 它以动态、直观的方式展示游戏角色、皮肤、成就或场景,不仅极大地提升了界面的美观度和交互性,还能高效地引导玩家聚焦于核心内容。 本篇文章将从零开始,一步步在Unity中构建一个功能完备、性能优良的游戏轮播图。 使用UGUI系统,通过代码驱动,实现包括自动轮播、手动拖拽、分页指示器、无限循环等核心功能。 无论是UI新手还是希望优化现有方案的开发者,这篇文章都将为你提供清晰的思路和完整的解决方案。

努力前行,总会成为自己心中的那道光 4万+

✨在Windows11上安装虚拟机(VMware17.6.0)保姆级教程(附安装包)

VMware Workstation Pro 是一款功能强大的虚拟机软件,它允许你在单一的物理机上运行多个操作系统。性能卓越:VMware以其出色的性能和稳定性而闻名,适合运行资源密集型的虚拟机。用户友好:直观的用户界面使得即使是初学者也能快速上手。功能全面:支持多种操作系统,包括Windows、Linux、macOS等,满足不同用户的需求。企业级支持:VMware提供全面的技术支持,适合企业级用户。恭喜你成功安装了VMware Workstation Pro 17.6.0!

Python老吕的博客 1万+

iOS程序开发引用的第三方库之间出现冲突的处理方法

iOS程序开发引用的第三方库之间出现冲突的处理方法 对原文个别不是特别清楚地方,进行完善。 原文地址:http://www.cocoachina.com/bbs/read.php?tid=188289          项目中免不了要用到第三方库,有的时候引用的第三方库多了,可能库与库之间会产生类名重叠导致冲突的问题。          最近在项目中就遇到了这样的事情,索性完美

四年路 2678

Jetson nano 系列之2—板载摄像头IMX219启动

我选用的是亚博科技jetson nano的开发板。

驽马十驾,功在不舍;锲而不舍,金石可镂。 4274

iOS网络编程 (第三方开源库)----->AFNetworking

http://blog.youkuaiyun.com/smy_api/article/details/39181435

西北风的专栏 1889

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

iOS网络编程(7) 第三方开源库----->AFNetworking

AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目。        @原文链接https://github.com/AFNetworking/AFNetworking,我在此基础上了点配置修改    

iOS界@迷糊小书童 3712

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

iOS 第三方开源库----->AFNetworking

AFNetworking AFNetworking是一个为iOS和Mac OSX制作的令人愉快的网络库,它建立在URL装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它的模块架构被良好的设计,拥有丰富的功能,因此,使用起来,必定赏心悦目。 原文链接https://github.com/AFNetworking/AFNetworking 介绍   1.支持...

weixin_34240520的博客 110

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何选择AFNetworking版本

如何选择AFNetworking版本 官网下载2.5版本:http://afnetworking.com/ 此文章基于AFNetworking2.0,如果您使用的是2.5版本的,请看这篇文章:AFNetworking2.5使用 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少。AFNetworking 2.0或者之后的版本需要xcode5.0

Vic 791

AFNetworking的简单使用

https://www.jianshu.com/p/62f76da40031

liudongshizhang的博客 277

iOS-AFNetWorking的应用

AFNetWorking是一款被广泛应用与iOS和OS X平台的网络库。它是基于Foundation URL Loading System来构建的,它扩展了很多Cocoa框架功能,将它们与定制的高级网络请求方法相融合。他还有非常好的模块化结构和丰富的API接口。   我们这里使用的是AFNetWorking的2.6.3的版本。在iOS升级到9.0以后,官方推荐使用NSURLSession来替代

来自星星的の松子的博客 420

RunLoop 的实际应用举例-AFNetworking

AFURLConnectionOperation 这个类是基于 NSURLConnection 构建的,其希望能在后台线程接收 Delegate 回调。为此 AFNetworking 单独创建了一个线程,并在这个线程中启动了一个 RunLoop:+ (void)networkRequestThreadEntryPoint:(id)__unused object { @autoreleasep

TungKamLau 2814

AFNetWorking用法及缓存处理

AFNetWorking 在IOS开发中是一个经常会用的第三方开源库,其最好处是维护及时,源码开源。 常用GET与POST请求方法: POST请求: ? 1 2 3 4 5 6 7 8 9 //初始化一个请求对象  AFHTTPRequestOperationManager 

xiaoyangsavvy的专栏 573

AFNetworking的基本使用

AFNetworking是一个功能非常强大的框架,主要是用于网络请求,把复杂的原生代码封装好,我们只需要简单的几步就可以完成网络请求。 首先是get和post请求 //get 请求 //创建会话对象 AFHTTPSessionManager *Manager = [AFHTTPSessionManager manager]; //字典传递网址问号以后的参数 NSDictionary *dict = [[NSDictionary alloc]init]; //2 发送ge

faker1111112的博客 3054

pod package 打包因podspec中引入了dependency导致打出来.a库被使用时出现大量的依赖冲突 duplicate symbols for architecture 解决方案

做iOS库文件打包想必一定用过pod package , 最近使用pod做依赖库在使用pod package打包时,因我做的pod lib库的podspec文件中依赖了第三库,如下: Pod::Spec.new do |s| s.name = 'LWDrawboard' s.version = '1.0.0' s.summary = 'A short description of LWDrawboard.' 。。。。。

维唯为为_优快云博客 3137

iOS 制作静态库 .a 文件 和 .framework 文件 以及解决第三方库冲突问题 最后附上图片及Xib资源打包成 bundle (转载 mark 一下)

制作静态库 .a       原文地址:  http://blog.youkuaiyun.com/wqs1028/article/details/50351666  制作.framework    原文地址: http://www.jianshu.com/p/bc89f3e5b58c

Luck_Developer的博客 3963
上一篇: iOS开发创建开发证书及发布App应用流程说明
下一篇: iOS7 Networking with NSURLSession
SMY_API
博客等级 码龄13年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值