AFNetwork学习(二)——GET/POST请求
为了学习AFNetwork,自己搭建整理了一下AFNetwork向后台发送请求和后台返回json数据的整个处理过程。利用Struts2搭建了一个后台,提供Action并返回json数据
环境:Xcode6.3
后台:tomcat+myeclipse10.6 框架:struts2
1.新建一个single-view applicationproject名为IOS_AFNetwork,开发语言选择OC.
2.将AFNetwork库文件增加到project中,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="400" height="420" border="1" alt="">
3.引入SystemConfiguration.framework、MobileCoreService.framework、Security.framework 。例如以下图:
4.在main.storyboard中加入两个button。发别用来发送get和post请求,并设置相应的响应函数。
例如以下图:
5.发送Get请求
//get请求
- (IBAction)getRuquest:(id)sender {
//为了測试方便。自己搭建了一个javaweb后台
NSString *URLString = @"http://localhost:8080/server/login.action";
//传递參数
NSDictionary *loginInputValue = @{@"username" : @"1234567890",
@"password" : @"123456"}; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer.timeoutInterval = self.timeInternal;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
self.operation = [manager GET:URLString
parameters:loginInputValue
success:^(AFHTTPRequestOperation *operation, id responseObject) {
//解析后台返回的json串。将json转为字典
NSDictionary *responseData = [NSDictionary dictionaryFromJSONData:(NSData *)responseObject];
NSLog(@"success:%@",responseData);
NSString *name = [responseData objectForKey:@"name"];
NSLog(@"name : %@",name);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error info :%@",[error description]);
}];
}
6.发送Post请求
- (IBAction)postRequest:(id)sender {
NSString *URLString = @"http://localhost:8080/server/login.action";
NSDictionary *loginInputValue = @{@"username" : @"1234567890",
@"password" : @"123456"};
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer.timeoutInterval = self.timeInternal;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
self.operation = [manager POST:URLString
parameters:loginInputValue
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSDictionary *responseData = [NSDictionary dictionaryFromJSONData:(NSData *)responseObject];
NSString *name = [responseData objectForKey:@"name"];
NSLog(@"name : %@",name);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error info :%@",[error description]); }];
}
OC代码下载地址:
http://download.csdn.net/detail/yuj9006/8876937
后台代码下载地址:
AFNetwork学习(二)——GET/POST请求的更多相关文章
- Node.js基础学习二之POST请求
本篇介绍下 Node.js post 请求 需求: 用户登录,前端界面输入用户名和密码,点击登录请求后台验证,根据后台反馈的信息做出响应 前端: (1)使用form表单 (2)使用ajax异步请求 服 ...
- Java开发学习(二十四)----SpringMVC设置请求映射路径
一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- Android系列之网络(二)----HTTP请求头与响应头
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- DjangoRestFramework学习二之序列化组件、视图组件 serializer modelserializer
DjangoRestFramework学习二之序列化组件.视图组件 本节目录 一 序列化组件 二 视图组件 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组 ...
- SpringMVC入门学习(二)
SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...
- day 82 Vue学习二之vue结合项目简单使用、this指向问题
Vue学习二之vue结合项目简单使用.this指向问题 本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...
- day 90 DjangoRestFramework学习二之序列化组件
DjangoRestFramework学习二之序列化组件 本节目录 一 序列化组件 二 xxx 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组件 首先按照 ...
- vue.js学习之 跨域请求代理与axios传参
vue.js学习之 跨域请求代理与axios传参 一:跨域请求代理 1:打开config/index.js module.exports{ dev: { } } 在这里面找到proxyTable{}, ...
随机推荐
- 64位系统/32位系统下/8位CPU的数据宽度
不同的编译器根据不同的 64 位模型有所不同. 比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 long 和指针是 64 位 ...
- docker学习笔记12:Dockerfile 指令 ENTRYPOINT介绍
本文介绍Dockerfile的 ENTRYPOINT指令的含义. 先回顾下CMD指令的含义,CMD指令可以指定容器启动时要执行的命令,但它可以被docker run命令的参数覆盖掉. ENTRYPOI ...
- 编译原理Tiny语言的定义
Here is the definition for Tiny language The Tiny lexicon is as follows: Keywords: IF ELSE WRITE R ...
- Linux下VNC的安装和开机启动
1.确认VNC是否安装默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上.确认是否已经安装VNC服务及查看安装的VNC版本[root@testdb ~]# ...
- zzuli Camellia的难题(暴力)
1784: Camellia的难题 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 67 Solved: 14SubmitStatusWeb Boar ...
- Storm 配置图文解析
Storm 配置图文解析 參考阅读:http://www.xiaofateng.com/? p=959 ============================== | sample-topology ...
- BZOJ 3315: [Usaco2013 Nov]Pogo-Cow( dp )
我真想吐槽USACO的数据弱..= = O(n^3)都能A....上面一个是O(n²), 一个是O(n^3) O(n^3)做法, 先排序, dp(i, j) = max{ dp(j, p) } + w ...
- [转]VMware 出现下述错误: Application failure. hr=0x80040101:Failed to initialize virtual machine.
VMware 出现下述错误:Application failure. hr=0x80040101:Failed to initialize virtual machine. 解决方法:1.重新注册这三 ...
- Python 第八篇:异常处理、Socket语法、SocketServer实现多并发、进程和线程、线程锁、GIL、Event、信号量、进程间通讯
本节内容: 异常处理.Socket语法.SocketServer实现多并发.进程和线程.线程锁.GIL.Event.信号量.进程间通讯.生产者消费者模型.队列Queue.multiprocess实例 ...
- Android ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to register to receive intents
ReceiverCallNotAllowedException mContext.registerReceiver()不能在BroadcastReceiver的onReceive()里面调用 可以通过 ...