首页 文章 精选 留言 我的

精选列表

搜索[网络监控],共10000篇文章
优秀的个人博客,低调大师

iOS AFNetworking(网络框架)

AFNetworking NSURLConnection ---导入头文件"AFHTTPRequestOperationManager.h" 1. 发送GET请求 //发送get请求 - (void)get { [[AFHTTPRequestOperationManager manager] GET:@"http://127.0.0.1/demo.json" parameters:nil success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) { NSLog(@"%@",responseObject); NSLog(@"%@",[responseObject class]); } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } 2. 发送GET请求--带参数 //发送get请求,传参数 - (void)get { [[AFHTTPRequestOperationManager manager] GET:@"http://127.0.0.1/php/login.php" parameters:@{@"username":@"abc",@"password":@"123"} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) { NSLog(@"%@",responseObject); } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } 3. 发送POST请求 //演示post请求 - (void)post { [[AFHTTPRequestOperationManager manager] POST:@"http://127.0.0.1/php/login.php" parameters:@{@"username":@"abcd",@"password":@"lalala"} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) { NSLog(@"%@",responseObject); } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } 4. 上传文件 - (void)post { //获取要上传文件的路径 NSURL *url1 = [[NSBundle mainBundle] URLForResource:@"06.jpg" withExtension:nil]; NSURL *url2 = [[NSBundle mainBundle] URLForResource:@"01.jpg" withExtension:nil]; [[AFHTTPRequestOperationManager manager] POST:@"http://127.0.0.1/php/upload/upload-m.php" parameters:@{@"username":@"zhangsan"} constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { //上传文件 [formData appendPartWithFileURL:url1 name:@"userfile[]" error:nil]; [formData appendPartWithFileURL:url2 name:@"userfile[]" error:nil]; } success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) { NSLog(@"%@",responseObject); } failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } NSURLSession ---导入头文件"AFHTTPSessionManager.h" 1. 发送GET请求 - (void)get { [[AFHTTPSessionManager manager] GET:@"http://127.0.0.1/demo.json" parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) { NSLog(@"%@",responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } 2. 下载任务 - (void)download { NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/abc.hm"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; //进度 NSProgress *progress = nil; [[[AFHTTPSessionManager manager] downloadTaskWithRequest:request progress:&progress destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { // NSLog(@"targetPath -- %@",targetPath); NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename]; // 本地文件的URL必须使用这种方式获取 NSURL *url = [[NSURL alloc] initFileURLWithPath:path]; //返回要保存文件的路径 return url; } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable 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<NSString *,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(@"totalUnitCount : %zd",progress.totalUnitCount); NSLog(@"fractionCompleted : %f",progress.fractionCompleted); //回到主线程更新UI NSLog(@"%@",[NSThread currentThread]); } } 3. 获取网页数据--修改默认的序列化器 - (void)getBaidu { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //修改响应的序列化器 manager.responseSerializer = [AFHTTPResponseSerializer serializer]; [manager GET:@"http://www.baidu.com" parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) { NSString *html = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; NSLog(@"%@",html); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } 4. 解析XML - (void)getXML { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 设置序列号器为XML,也可修改为AFHTTPResponseSerializer,使用第三方框架解析二进制数据 manager.responseSerializer = [AFXMLParserResponseSerializer serializer]; [manager GET:@"http://127.0.0.1/videos.xml" parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, NSXMLParser *responseObject) { //解析xml responseObject.delegate = self; [responseObject parse]; } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"%@",error); }]; } //NSXMLParser 的代理方法 - (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog(@"1 开始解析"); } - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict { NSLog(@"2 开始节点 %@ %@",elementName,attributeDict); } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { NSLog(@"3 节点之间的内容 %@",string); } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { NSLog(@"4 结束节点 %@",elementName); } - (void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"5 结束解析"); } - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { NSLog(@"6 错误"); }

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册