iOS中POST异步请求
POST异步请求(代理)
1、遵循<NSURLConnectionDataDelegate>
- @interface ViewController ()<NSURLConnectionDataDelegate>
2、NSMutableData类型的reData属性是用来拼接数据的
- @property (nonatomic,strong)NSMutableData *reDtata;
3、获取url
- NSString *urlString = @"http://api.tudou.com/v3/gw";
- NSURL *url = [NSURL URLWithString:urlString];
4、创建request请求
- NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
5、设置HTTPMethod为POST请求(默认为GET请求)
- request.HTTPMethod = @"POST";
6、设置HTTPBody(url中的body部分,如果body部分含有中文需要转化)
- NSString *bodyStr = @"method=album.channel.get&appKey=myKey&format=json&channel=c&pageNo=1&pageSize=15";
- NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
- request.HTTPBody = bodyData;
7、创建连接并设置代理
- [NSURLConnection connectionWithRequest:request delegate:self];
8、实现代理方法
- - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- {
- self.reDtata = [NSMutableData data];
- }
- - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- {
- [_reDtata appendData:data];
- }
- - (void)connectionDidFinishLoading:(NSURLConnection *)connection
- {
- NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:_reDtata options:(NSJSONReadingAllowFragments) error:nil];
- NSLog(@"%@",dic);
- }
- - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- {
- }
下面是实现的所有代码
- - (IBAction)postAsyc:(id)sender{}是从storyboard里面拖出来的控件代码,也可以直接写代码实现,写一个button和它的实现方法即可。
- #import "ViewController.h"
- @interface ViewController ()<NSURLConnectionDataDelegate>
- @property (nonatomic,strong)NSMutableData *reDtata;
- @end
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (IBAction)postAsyc:(id)sender {
- NSString *urlString = @"http://api.tudou.com/v3/gw";
- NSURL *url = [NSURL URLWithString:urlString];
- NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
- request.HTTPMethod = @"POST";
- NSString *bodyStr = @"method=album.channel.get&appKey=myKey&format=json&channel=c&pageNo=1&pageSize=15";
- NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
- request.HTTPBody = bodyData;
- [NSURLConnection connectionWithRequest:request delegate:self];
- }
- - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- {
- self.reDtata = [NSMutableData data];
- }
- - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- {
- [_reDtata appendData:data];
- }
- - (void)connectionDidFinishLoading:(NSURLConnection *)connection
- {
- NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:_reDtata options:(NSJSONReadingAllowFragments) error:nil];
- NSLog(@"%@",dic);
- }
- - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- {
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- @end
iOS中POST异步请求的更多相关文章
- iOS中发送HTTP请求的方案
在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...
- iOS NSURLConnection POST异步请求封装,支持转码GBK,HTTPS等
.h文件 #import <Foundation/Foundation.h> //成功的回调 typedef void(^successBlock)(id responseObj); // ...
- Springmvc中 同步/异步请求参数的传递以及数据的返回
转载:http://blog.csdn.net/qh_java/article/details/44802287 注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方 ...
- Jquery中Ajax异步请求中的async参数的作用
之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" on ...
- springmvc中同步/异步请求参数的传递以及数据的返回
注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方式,以及将处理后的model 传向前台***** 1.前台传递数据的接受:传的属性名和javabean的属性相同 ...
- for循环中嵌套异步请求问题
for循环中嵌套了异步请求会导致顺序错乱,用递归代替for循环,可以保证正常执行顺序:
- CAT中实现异步请求的调用链查看
CAT简介 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统.美团点评基础架构部希望在基础存储.高性能通信.大规模在线访 ...
- iOS中的网络请求 和 网络监测
1.网络监测 //根据主机名判断网络是否连接 Reachability *reach = [Reachability reachabilityWithHostName:@"www.baidu ...
- IOS中UITableView异步加载图片的实现
本文转载至 http://blog.csdn.net/enuola/article/details/8639404 最近做一个项目,需要用到UITableView异步加载图片的例子,看到网上有一个E ...
随机推荐
- 北京VR视频外包团队:全景VR视频科普
近期很多用户资讯问关于全景视频,这里动点给大家介绍一下: 首先,全景360VR视频(全景视频使用VR设备控制)是一种特殊的视频形式,与普通视频的最大区别就是,全景视频的每一帧都是涵盖360度空间场景信 ...
- 黄聪:详解 ManualResetEvent(转)
原文:http://www.cnblogs.com/li-peng/p/3291306.html 今天详细说一下ManualResetEvent 它可以通知一个或多个正在等待的线程已发生事件,允许线程 ...
- Unity3D使用Assetbundle打包加载(Prefab、场景)
之前有一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity游戏开发使用Assetbundle加载场景的原理 本篇文章我们将说说assetbund ...
- 约瑟夫(环)问题(Josephus problem)
问题描述:皇帝决定找出全国中最幸运的一个人,于是从全国选拔出 n 个很幸运的人,让这 n 个人围着圆桌进餐,可是怎么选择出其中最幸运的一个人呢?皇帝决定:从其中一个人从 1 开始报数,按顺序数到第 k ...
- Django model中常见Field types , Field options
AutoField :自增,数据库 BooleanField:布尔型 CharField:字符型 DateField:日期,datetime.date类的实例.有两个常用的option,auto_no ...
- 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植
为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...
- Mantis 1.2.19 on Windows Server 2012 r2 datacenter 安装及配置随笔
一.前言 新的小团队需要搭建一个缺陷管理的工具,之前用过bugfree,感觉比较适合,但是 禅道不太适合,放弃之,于是又百度推荐的: .JTrac13.BugNet14.BugOnline15.eTr ...
- lua 和 c
lua程序其实本身并不能执行,它必须依靠c语言编写的解释器来解释执行,或者说解释器为lua脚本的执行,提供了一个运行环境(lua_state),其中包括函数堆栈,内存分配和回收等机制. 理论上,lua ...
- lua 面向对象
对象的特点是: 对象拥有自己的数据,两个对象即使数据完全相同,他们也是相互独立的: 对象之间可以共享对象的行为,也就是他们的方法是一致的: lua中的table就非常适合作为一个对象,可以在table ...
- express html模板项目搭建
初学express的亲们,估计要弄ejs和jade会比较烦躁,那就先html开始,简单笔记如下: 1.新建项目文件夹demotest 2.进入demotest >express -e ...