为了学习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

后台代码下载地址:

http://download.csdn.net/detail/yuj9006/8876999

AFNetwork学习(二)——GET/POST请求的更多相关文章

  1. Node.js基础学习二之POST请求

    本篇介绍下 Node.js post 请求 需求: 用户登录,前端界面输入用户名和密码,点击登录请求后台验证,根据后台反馈的信息做出响应 前端: (1)使用form表单 (2)使用ajax异步请求 服 ...

  2. Java开发学习(二十四)----SpringMVC设置请求映射路径

    一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...

  3. emberjs学习二(ember-data和localstorage_adapter)

    emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...

  4. Android系列之网络(二)----HTTP请求头与响应头

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  6. DjangoRestFramework学习二之序列化组件、视图组件 serializer modelserializer

      DjangoRestFramework学习二之序列化组件.视图组件   本节目录 一 序列化组件 二 视图组件 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组 ...

  7. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  8. day 82 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  9. day 90 DjangoRestFramework学习二之序列化组件

      DjangoRestFramework学习二之序列化组件   本节目录 一 序列化组件 二 xxx 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组件 首先按照 ...

  10. vue.js学习之 跨域请求代理与axios传参

    vue.js学习之 跨域请求代理与axios传参 一:跨域请求代理 1:打开config/index.js module.exports{ dev: { } } 在这里面找到proxyTable{}, ...

随机推荐

  1. Xcode使用source control 时提示the server certificate failed to verify 的解决办法

    wusipingdeMacBook-Pro:~ railgun$ wusipingdeMacBook-Pro:~ railgun$ svn ls https://13.13.13.134:8443/s ...

  2. HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)

    虽然是一道还是算简单的DP,甚至不用滚动数组也能AC,数据量不算很大. 对于N个数,每个数只存在两个状态,取 和 不取. 容易得出状态转移方程: dp[i][j] = dp[i - 1][j ^ a[ ...

  3. Net FLow Template

    EK  Template : bool bfs(int src, int des){ memset(pre, -, sizeof(pre)); while(!que.empty()) que.pop( ...

  4. 创建.NET Core项目

    创建.NET Core项目 ? 对于.NET开发人员来说,我们已经习惯了VS这个世界上最强大的IDE,所以对他们来说,项目的创建直接利用安装到VS中相应的项目模板即可.当.NET Core跨出了Win ...

  5. java之Thread.sleep(long)与object.wait()/object.wait(long)的区别(转)

    一.Thread.sleep(long)与object.wait()/object.wait(long)的区别sleep(long)与wait()/wait(long)行为上有些类似,主要区别如下:1 ...

  6. NodeJS用Express建立project

    1.通过下面命令建立站点基本结构: <span style="margin: 0px; padding: 0px; font-family: Verdana, Arial, Helve ...

  7. jQuery推断复选框是否勾选

    今天要实现一功能就是:复选框勾选时给input表单赋值,复选框取消时将表单值清除. 效果如图: 实现源代码:cyfID为复选框的id $("#cyfID").click(funct ...

  8. 高级UIKit-09(TCPSocket发送文件、上传和下载)

    [day1101_SocketSendFile]:发送文件到服务端 发送文件需要在该文件上拼接消息头,比如类型,文件名,文件大小 // 服务端 - (void)viewDidLoad { [super ...

  9. python中文utf8编码后是占3个字符,unicode汉字为2字节

    一个中文utf8编码后是占3个字符,所以求长度的函数可以这样写 def str_len(str): try: row_l=len(str) utf8_l=len(str.encode('utf-8') ...

  10. 浙江大学PAT上机题解析之3-04. 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和. 输入格式说明: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分 ...