iOS 网络解析 -- 简单的JSON解析(包含AFNetworking、MJExtension的简单实用)
来源:互联网 发布:安卓电视直播软件 知乎 编辑:程序博客网 时间:2024/06/07 03:33
对于现在互联网时代来说,一个没有网络请求的应用通常是没有生命的,现在的应用,几乎所有的应用都需要用到网络编程,比如美团、大众点评】嘀嘀打车、微信;只有通过网络跟外界进行数据交互、数据更新,应用才能保持新鲜、更能持久;如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将会被淘汰。、
此程序涉及到的知识点:
(1)AFNetworking、MJExtension库的使用
(2)基类的使用(其实就是继承)
(3)MVC模式
(4)封装网络请求
下图是效果图(适配所有屏幕)
首先是封装网络请求
很多时候网络请求会使用第三方框架,AFNetworking、ASIHTTPRequest,在一个项目中到处都要用到网络请求,使用第三方框架有很强的依赖性,如果别人的库一更新我们也要跟着更新,维护起来的时候麻烦,所以一般会自己先封装网络请求,当更新的时候, 只要更新这一处就行了。
声明
// 封装网络请求#import <Foundation/Foundation.h>@interface SeptNetWorkTool : NSObject
// url 请求的url params: 请求的参数+ (void)POST:(NSString *)url params:(NSDictionary *)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure;@end
#import "SeptNetWorkTool.h"#import "AFNetworking.h"@implementation SeptNetWorkTool+ (void)POST:(NSString *)url params:(NSDictionary *)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure{ // 1.获取请求管理者 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // 2.发生POST请求 // 2.发送POST请求 [manager POST:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObj) { if (success) { success(responseObj); } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { if (failure) { failure(error); } }];}@end
- (void)sendPostRequest:(NSString *)text // test是输入框中的text{ NSString *mStrURL = [NSString string]; // 这里仅仅是为了第一次运行程序显示有数据(无实际意义) if (text == nil) { mStrURL = [NSString stringWithFormat:@"%@", TestUrl]; }else { mStrURL = [NSString stringWithFormat:URLSTR, APPKEY, text]; } // 封装请求参数 NSMutableArray *mArray = [NSMutableArray array]; [SeptNetWorkTool POST:mStrURL params:nil success:^(id responseObj) { NSDictionary *dataDict = responseObj[@"result"]; for (NSDictionary *dict in dataDict[@"data"]) { // 没有使用MJExtension框架 AFCaipuData *mAFdata = [[AFCaipuData alloc] initWithDictionary:dict]; // 使用了MJExtension框架(其实在这里看不出使用MJExtension的方便,因为代码都是一句,这个只能在数据模型中才能看出方便 PS:数据模型AFCaipuData) MJCaipuData *mMJdata = [MJCaipuData objectWithKeyValues:dict]; [mArray addObject:mMJdata]; } _caipuArray = mArray; [self.tabView reloadData]; } failure:^(NSError *error) { NSLog(@"----error -- %@", error); }];}
#pragma mark =========== 确定按钮的点击事件 ===========- (IBAction)sureOnClick:(UIButton *)sender{ // URLHostAllowedCharacterSet : 返回一个字符集包含在URL的主机部分允许的字符。 NSString *mStr1 = [self.textField.text stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]; // 重新获取数据 [self sendPostRequest:mStr1]; // 让文本框退出编辑 [self.textField endEditing:YES];}
0 0
- iOS 网络解析 -- 简单的JSON解析(包含AFNetworking、MJExtension的简单实用)
- ios网络请求框架,基于AFNetworking封装,其中缓存模块依赖TMCache,JSON解析模块依赖MJExtension,使用更加简单方便
- ios 简单的本地json格式文件解析
- iOS三方库:MJExtension的简单使用
- json解析的简单例子
- 简单的简化JSON解析
- Json解析的简单介绍
- 简单的json解析工具
- iOS Json解析框架之MJExtension使用详解(转)
- iOS 一个简单的获取网络json 解析成模型数组
- iOS学习笔记-147.网络07——NSURLConnection04_简单JSON的解析
- 生成Json、解析Json的简单示例
- 简单ios json解析处理
- 简单实用的Xml解析类
- 简单实用的xml解析类-----------CMarkUP
- 一个简单实用的ini解析算法
- JSON解析-系统方法和第三方JSONKit的简单实用
- 一种简单的JSON解析方法
- c++
- c# 做的登录窗体,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程怎么办
- 求1+2+3+...+n
- UI课程21 集合视图UICollectionView
- Centos7 + Windows7 双系统,通过修改grub2,重新添加 Win7 启动引导项
- iOS 网络解析 -- 简单的JSON解析(包含AFNetworking、MJExtension的简单实用)
- K个值求和计算
- 第7周项目5-排队看病模拟(队列)
- 堆和栈的区别
- 甲骨文基本知识2
- 概率漫谈
- 搜集战舰的游戏
- 【2015/10/11】Linux学习日志_Day6 YUM 进程 桥接模式
- linux oracle自动备份脚本