网络篇----第三方框架AFN01

本文深入探讨了AFNetworking第三方框架在上传和下载任务中的应用,详细介绍了两大核心对象AFHTTPSessionManager和AFHTTPRequestOperation的使用方法,包括创建、封装请求参数、发送HTTP请求以及对服务器返回数据的不同解析方式。通过实例演示了GET请求和POST请求的具体实现,并强调了服务器返回数据解析的重要性,提供了AFNetworking框架在实际项目中的高效应用策略。

AFN第三方框架是工作中经常使用的上传和下载的框架

下载路径

https://github.com/AFNetworking/AFNetworking

下载完后添加AFNetworking 这个文件夹到项目中去,

然后导入头文件AFNetworking.h

一、 2大管理对象

1.AFHTTPSessionManager

*对NSURLsession封装

2、AFHTTPRequestOperation

*对NSURLconnection封装

二、AFHTTPRequestOperation 的具体使用

1、创建管理者

 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

2、封装请求参数

 NSMutableDictionary *params = [NSMutableDictionary dictionary];

    params[@"username"] = @"哈哈哈";

    params[@"pwd"] = @"123";

3、发送请求  

   NSString *url = @"http://localhost:8080/MJServer/login";

    [mgr POST:url parameters:params

     success:^(AFHTTPRequestOperation *operation, id responseObject) {

         // 请求成功的时候调用这个block

         NSLog(@"请求成功--%@", responseObject);

//         responseObject.delegate = self;

//         [responseObject parse];

     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

         // 请求失败的时候调用调用这个block

         NSLog(@"请求失败");

     }];

}

get请求

   NSString *url = @"http://localhost:8080/MJServer/login";

    [mgr GET:url parameters:params

     success:^(AFHTTPRequestOperation *operation, id responseObject) {

         // 请求成功的时候调用这个block

         NSLog(@"请求成功--%@", responseObject);

//         responseObject.delegate = self;

//         [responseObject parse];

     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

         // 请求失败的时候调用调用这个block

         NSLog(@"请求失败");

     }];

}

三、对服务器返回数据解析

1、AFN可以自动对服务器返回数据的解析方式

*默认服务器是json来解析服务器返回的数据

2、设置对服务器返回数据的解析方式

1>当作是json来解析返回的数据

   mgr.responseSerializer = [AFJSONResponseSerializer serializer];

   responseObject的类型是NSDictionary或者NSArray

2>当作是xml来解析

    // 声明:等会服务器返回的是XML数据

    // responseObject的类型是NSXMLParser

    mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];

3>直接返回data

 // 声明:不要对服务器返回的数据进行解析,直接返回data即可

    // 如果是文件下载,肯定是用这个

    // responseObject的类型是NSData

    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];

eg:

    // 1.创建一个请求操作管理者

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

    // 声明:不要对服务器返回的数据进行解析,直接返回data即可

    // 如果是文件下载,肯定是用这个

    // responseObject的类型是NSData

    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];

    

    // 2.请求参数

    NSMutableDictionary *params = [NSMutableDictionary dictionary];

    params[@"username"] = @"哈哈哈";

    params[@"pwd"] = @"123";

    

    // 3.发送一个GET请求

    NSString *url = @"http://localhost:8080/MJServer/login";

    [mgr GET:url parameters:params

     success:^(AFHTTPRequestOperation *operation, id responseObject) {

         // 请求成功的时候调用这个block

         NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];

         

         NSLog(@"%@", dict);

     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

         // 请求失败的时候调用调用这个block

         NSLog(@"请求失败");

     }];

}

 3、注意

1、>服务器返回的是json数据

 *AFJSONResponseSerializer

*AFHTTPResponseSerializer

2>服务器返回的是xml

*AFXMLParserResponseSerializer

*AFHTTPResponseSerializer

3.>返回其他数据

*AFHTTPResponseSerializer

 

 

    

 

转载于:https://www.cnblogs.com/lizhan1991/p/4738654.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值