为了学习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. 使用copy函数完成数据库迁移

    最近在该一个迁移工具的迁移方式,从ora8迁移到postgresql使用原来的插入迁移速度太慢了,老板说让使用缓存迁移,即使用postgresql的copy函数,因此去pg官网查阅了相关资料,我们需要 ...

  2. 关于 Oracle外键列上是否需要索引问题?

    外键列上缺少索引会带来两个问题,限制并发性.影响性能.而这两个问题中的任意一个都可能会造成严重性能问题.   无论是Oracle的官方文档,还是在Tom的书中都说明了两种情况下可以忽略外键上的索引.其 ...

  3. [置顶] 浏览器模式和标准对于javascript的影响

    今天在编写代码的时候遇到了一个莫名其妙的问题,请看下面 <html> <head> <title> Test </title> <!--<m ...

  4. PS图片

    第二次练习PS,不知道找什么图片,就这么做着吧.然后自己学习了下动画制作,但是中间有些问题,需要再研究研究. 像 CS6中新建蒙版文档,画出的图形单位是厘米,怎么改为像素?(答案看后续博客....)

  5. python 3.4 装matplotlib numpy

    为了装个matplotlib包,搞了好久:   python3.4,官方没有对应版本的包,只能去下面这个地方下对应的版本: http://www.lfd.uci.edu/~gohlke/pythonl ...

  6. source insight 中文注释为乱码解决

    1. source insight 中文注释为乱码解决 http://blog.csdn.net/bingfeng1210/article/details/7527059 2. Source Insi ...

  7. webform--常用的控件

    一.简单控件 1.Lable——标签:在网页中呈现出来的时候会变成span标签 属性:Text——标签上的文字  BackColor,ForeColor——背景色,前景色 Font——字体 Bold- ...

  8. 17-UIKit(UIView的动画)

    2. UIView的动画 UIView类本身具有动画的功能 2.1 概念 由UI对底层Core Animation框架的封装 可以轻松简单的实现动画效果 2.2 两种使用方式 1> Block ...

  9. Java:利用java Timer类实现定时执行任务的功能

    一.概述 在java中实现定时执行任务的功能,主要用到两个类,Timer和TimerTask类.其中Timer是用来在一个后台线程按指定的计划来执行指定的任务.TimerTask一个抽象类,它的子类代 ...

  10. Android 去掉Activity的跳转动画

    startActivity或finish的时候调用一句话即可: overridePendingTransition(0, 0);