IOS开发基础之使用AFNetworking框架下载服务器资源图片

info.plist加入这句

<key>NSAppTransportSecurity</key>
<dict><key>NSAllowsArbitraryLoads</key><true/>
</dict>


服务器这里我们选择是Java 的 Tomcat 服务器.Net 服务器或者PHP服务器亦可,或者node.js
nginx 服务器都可以 docker 容器服务器都可以,看你自己需求,也做了解析html 网页 数据到控制台。

//
//  ViewController.m
//  AFN演示
//
//  Created by 鲁军 on 2021/2/15.
//#import "ViewController.h"
#import "AFHTTPRequestOperationManager.h"
#import "AFHTTPSessionManager.h"
@interface ViewController ()<NSXMLParserDelegate>@end@implementation ViewController
-(void)getTestHtmlFromServer{AFHTTPSessionManager *manger = [AFHTTPSessionManager manager];manger.responseSerializer = [AFHTTPResponseSerializer serializer];NSString *getUrlStr = @"http://www.baidu.com";NSString *getUrlStr1 = @"http://localhost:8080/MJServer/";[manger GET:getUrlStr parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {NSString *html = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];NSLog(@"%@",html);} failure:^(NSURLSessionDataTask *task, NSError *error) {NSLog(@"%@",error);}];
}
-(void)testGetSession{NSString *strUrl = @"http://localhost:8080/MJServer/video";[[AFHTTPSessionManager manager] GET:strUrl parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {NSLog(@"%@",responseObject);} failure:^(NSURLSessionDataTask *task, NSError *error) {NSLog(@"%@",error);}];
}-(void)downLoadFromServer{NSString *downPath = @"http://localhost:8080/MJServer/resources/images/minion_04.png";NSURL *url = [NSURL URLWithString:downPath];NSURLRequest *request = [NSURLRequest requestWithURL:url];//进度NSProgress *progress = nil;[[[AFHTTPSessionManager manager] downloadTaskWithRequest:request progress:&progress destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {NSString *path =[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];NSURL *url = [[NSURL alloc] initFileURLWithPath:path];NSLog(@"targetPath=%@",targetPath);return url;} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {NSLog(@"%@",filePath);}] resume];// 观察progress 的某个属性 fractionCompleted (进度) 是否发生变化//KVO 观察者模式[progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:nil];
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{if([object isKindOfClass:[NSProgress class]]){NSLog(@"%@",change);NSProgress *progress = object;NSLog(@"%@",progress.localizedDescription);NSLog(@"%@",progress.localizedAdditionalDescription);NSLog(@"completedUnitCount = %zd",progress.completedUnitCount);NSLog(@"%f",progress.fractionCompleted);NSLog(@"totalUnitCount = %zd",progress.totalUnitCount);NSLog(@"%@",[NSThread currentThread]);  // 子线程上}
}- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.
}- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{//  [self get1];//[self post11];// [self testGetSession];// [self downLoadFromServer];//    [self getTestHtmlFromServer];[self getAndParseXML];
}
@end

IOS开发基础之使用AFNetworking框架下载服务器资源图片相关推荐

  1. IOS开发基础之使用AFNetworking框架实现xml文件的解析

    IOS开发基础之使用AFNetworking框架实现xml文件的解析 info.plist加入这行代码 <key>NSAppTransportSecurity</key> &l ...

  2. IOS开发基础之使用AFNetworking框架实现文件上传get和post请求

    IOS开发基础之使用AFNetworking框架实现文件上传get和post请求 AFNetworking框架 请自行从github官网clone.命令为 git clone xxx.xxx是项目的地 ...

  3. IOS开发基础之异步下载网络图片第1部分

    IOS开发基础之异步下载网络图片第1部分 加入ATS // LJAppInfo.h // 37-异步下载网络图片 // Created by 鲁军 on 2021/3/10. #import < ...

  4. iOS开发基础知识--碎片41

    iOS开发基础知识--碎片41 1:UIWebView加载本地的HTML NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *bas ...

  5. iOS开发网络篇—使用ASI框架进行文件下载

    iOS开发网络篇-使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载. 一.简单介绍 代码示例: 1 #import "YYView ...

  6. IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天

    IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天 视频资料是2015年的,但是AFN是导入框架的关键文件,我尝试使用cocoapods安装最新的AFN,虽然成功了,但是版本太高, ...

  7. IOS开发基础之NSURLSession的使用

    IOS开发基础之NSURLSession的使用 服务器我们选用的是tomcat服务器. 所有项目info.plist加入 <key>NSAppTransportSecurity</k ...

  8. IOS开发基础之解压缩文件技术

    IOS开发基础之解压缩文件技术 这里我们使用的第三方框架SSZipArchive,第三方依赖libz.tbd 库 ,基于C语言的,加入libz.tbd框架支持. 服务器我们选择是Java Web 的T ...

  9. IOS开发基础之大转盘案例

    IOS开发基础之大转盘案例 本案例使用xib加载的,以及核心动画的使用.动态按钮的使用和创建.等知识. 源码在我的主页资源下.欢迎下载. 核心代码在这. // LJRotateView.h // 37 ...

最新文章

  1. LeetCode: 2_Add Two Numbers | 两个链表中的元素相加 | Medium
  2. 虚拟主机linux系统404,虚拟主机404页面的设置方法!
  3. C++ 数据结构 线性链表
  4. 信息论 哈夫曼编码 与 菲诺编码的实现(对一幅BMP格式的灰度图像(个人 证件照片)进行二元霍夫曼编码和译码。并进行编码效率的计算,对一幅BMP格式的灰度图像进行二 元Fano编码、译码 )
  5. texstudio如何安装cjk宏包_MikTex+TexStudio配置论文写作环境
  6. vscode插件安装失败的解决方案
  7. 人工智能在安全漏洞方面的应用_智慧消防平台的智慧在哪方面?
  8. 【TSP】基于matlab蚁群算法求解旅行商问题【含Matlab源码 1130期】
  9. 软件设计师考试大纲2018
  10. Shiro完整教程, 附带各种配置
  11. pwm波控制舵机原理(转)
  12. UE4 合并静态网格体
  13. keras的model保存和载入
  14. C语言高级教程-C语言数组(三)
  15. 如何设置Xiuno BBS URL-Rewrite(伪静态设定)
  16. AntDesignVue中Table表格嵌套子表格expandedRowRender插槽用法
  17. 智联物联路由器openvpn客户端连接linux服务器通讯基本配置
  18. Android获取系统邮件账号
  19. APP测试面试题汇总,面试必考一定要看
  20. HTML5网页设计阶梯教程(2)——插入图片与文字编辑

热门文章

  1. Linux软件基础实验,linux基本操作的实验
  2. 下载不了python_Python的下载与安装
  3. 微型计算机原理课程设计计算器,微机原理课程设计简易计算器的设计.docx
  4. centos 显示50g硬盘但是 实际大小很小_天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍...
  5. getparameter方法中文显示问号解决方法_电脑显示器花屏怎么办 电脑显示器花屏解决方法【原因分析】...
  6. 软件测试团队分为哪些人员,产品团队、开发团队和测试团队是什么关系?
  7. 《c语言从入门到精通》看书笔记——第3章 数据类型
  8. php 图像编程库,PHP图像处理开发库
  9. mysql网页化_页面化操作数据库
  10. 手动选择显示_QGIS 二次开发笔记(2)——显示图层