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{}, ...
随机推荐
- c++,给常成员变量赋值
C++中,常成员变量只能在构造函数赋值,且只能通过参数列表的形式赋值,且必须在构造函数赋值. (拥有常成员变量的类的构造函数必须对所有成员变量赋值.) #include <iostream> ...
- BZOJ 1833: [ZJOI2010]count 数字计数( dp )
dp(i, j, k)表示共i位, 最高位是j, 数字k出现次数. 预处理出来. 差分答案, 对于0~x的答案, 从低位到高位进行讨论 -------------------------------- ...
- <转> 30 个有关 Python 的小技巧
目录[+] 1.1 拆箱 1.2 拆箱变量交换 1.3 扩展拆箱(只兼容python3) 1.4 负数索引 1.5 切割列表 1.6 负数索引切割列表 1.7指定步长切割列表 1.8 负数步长切割列表 ...
- C语言深度剖析---const关键字(转载)
const是constant的缩写,是恒定不变的意思.被const修饰的值,是只读变量. 1.const修饰只读变量,具有不变性 #include <stdio.h> int m ...
- Tcl语言笔记之一
1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100 // ...
- JavaScript弹出框
confirm(str); 参数说明: str:在消息对话框中要显示的文本 返回值: Boolean值 返回值: 当用户点击"确定"按钮时,返回true 当用户点击"取消 ...
- 基于visual Studio2013解决C语言竞赛题之0501挑选素数
题目
- Page的生命周期及相关事件苛
(1)请求页面:页请求发生在页生命周期开始之前. (2)开始:在开始阶段,将设置页属性,如Request和Response.在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性 ...
- iOS 使用SBJSON创建和解析JSON
原文地址:http://blog.csdn.net/gf771115/article/details/7718403 //创建JSON NSDictionary *dictonary = [[NSMu ...
- 自己python程序的并行修改
遇到运算量大的程序,学习了下python并行运算的方法,在自己的程序上进行了修改,看看是否可以增加效率.原始代码是: import gt_apps as my_apps f=file('sample. ...