POST异步请求(代理)

1、遵循<NSURLConnectionDataDelegate>

  1. @interface ViewController ()<NSURLConnectionDataDelegate>

2、NSMutableData类型的reData属性是用来拼接数据的

  1. @property (nonatomic,strong)NSMutableData *reDtata;

3、获取url

  1. NSString *urlString = @"http://api.tudou.com/v3/gw";
  2. NSURL *url = [NSURL URLWithString:urlString];

4、创建request请求

  1. NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

5、设置HTTPMethod为POST请求(默认为GET请求)

  1. request.HTTPMethod = @"POST";

6、设置HTTPBody(url中的body部分,如果body部分含有中文需要转化)

  1. NSString *bodyStr = @"method=album.channel.get&appKey=myKey&format=json&channel=c&pageNo=1&pageSize=15";
  2. NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
  3. request.HTTPBody = bodyData;

7、创建连接并设置代理

  1. [NSURLConnection connectionWithRequest:request delegate:self];

8、实现代理方法

  1. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
  2. {
  3. self.reDtata = [NSMutableData data];
  4. }
  5.  
  6. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  7. {
  8. [_reDtata appendData:data];
  9. }
  10.  
  11. - (void)connectionDidFinishLoading:(NSURLConnection *)connection
  12. {
  13. NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:_reDtata options:(NSJSONReadingAllowFragments) error:nil];
  14. NSLog(@"%@",dic);
  15. }
  16.  
  17. - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
  18. {
  19.  
  20. }

下面是实现的所有代码

  1. - (IBAction)postAsyc:(id)sender{}是从storyboard里面拖出来的控件代码,也可以直接写代码实现,写一个button和它的实现方法即可。
  1. #import "ViewController.h"
  2.  
  3. @interface ViewController ()<NSURLConnectionDataDelegate>
  4. @property (nonatomic,strong)NSMutableData *reDtata;
  5. @end
  6.  
  7. @implementation ViewController
  8.  
  9. - (void)viewDidLoad {
  10. [super viewDidLoad];
  11. // Do any additional setup after loading the view, typically from a nib.
  12. }
  13. - (IBAction)postAsyc:(id)sender {
  14. NSString *urlString = @"http://api.tudou.com/v3/gw";
  15. NSURL *url = [NSURL URLWithString:urlString];
  16. NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
  17. request.HTTPMethod = @"POST";
  18. NSString *bodyStr = @"method=album.channel.get&appKey=myKey&format=json&channel=c&pageNo=1&pageSize=15";
  19. NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
  20. request.HTTPBody = bodyData;
  21. [NSURLConnection connectionWithRequest:request delegate:self];
  22.  
  23. }
  24.  
  25. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
  26. {
  27. self.reDtata = [NSMutableData data];
  28. }
  29.  
  30. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  31. {
  32. [_reDtata appendData:data];
  33. }
  34.  
  35. - (void)connectionDidFinishLoading:(NSURLConnection *)connection
  36. {
  37. NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:_reDtata options:(NSJSONReadingAllowFragments) error:nil];
  38. NSLog(@"%@",dic);
  39. }
  40.  
  41. - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
  42. {
  43.  
  44. }
  45.  
  46. - (void)didReceiveMemoryWarning {
  47. [super didReceiveMemoryWarning];
  48. // Dispose of any resources that can be recreated.
  49. }
  50.  
  51. @end

iOS中POST异步请求的更多相关文章

  1. iOS中发送HTTP请求的方案

    在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...

  2. iOS NSURLConnection POST异步请求封装,支持转码GBK,HTTPS等

    .h文件 #import <Foundation/Foundation.h> //成功的回调 typedef void(^successBlock)(id responseObj); // ...

  3. Springmvc中 同步/异步请求参数的传递以及数据的返回

    转载:http://blog.csdn.net/qh_java/article/details/44802287 注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方 ...

  4. Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" on ...

  5. springmvc中同步/异步请求参数的传递以及数据的返回

    注意: 这里的返回就是返回到jsp页面 **** controller接收前台数据的方式,以及将处理后的model 传向前台***** 1.前台传递数据的接受:传的属性名和javabean的属性相同 ...

  6. for循环中嵌套异步请求问题

    for循环中嵌套了异步请求会导致顺序错乱,用递归代替for循环,可以保证正常执行顺序:

  7. CAT中实现异步请求的调用链查看

    CAT简介 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统.美团点评基础架构部希望在基础存储.高性能通信.大规模在线访 ...

  8. iOS中的网络请求 和 网络监测

    1.网络监测 //根据主机名判断网络是否连接 Reachability *reach = [Reachability reachabilityWithHostName:@"www.baidu ...

  9. IOS中UITableView异步加载图片的实现

    本文转载至 http://blog.csdn.net/enuola/article/details/8639404  最近做一个项目,需要用到UITableView异步加载图片的例子,看到网上有一个E ...

随机推荐

  1. 北京VR视频外包团队:全景VR视频科普

    近期很多用户资讯问关于全景视频,这里动点给大家介绍一下: 首先,全景360VR视频(全景视频使用VR设备控制)是一种特殊的视频形式,与普通视频的最大区别就是,全景视频的每一帧都是涵盖360度空间场景信 ...

  2. 黄聪:详解 ManualResetEvent(转)

    原文:http://www.cnblogs.com/li-peng/p/3291306.html 今天详细说一下ManualResetEvent 它可以通知一个或多个正在等待的线程已发生事件,允许线程 ...

  3. Unity3D使用Assetbundle打包加载(Prefab、场景)

    之前有一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity游戏开发使用Assetbundle加载场景的原理 本篇文章我们将说说assetbund ...

  4. 约瑟夫(环)问题(Josephus problem)

    问题描述:皇帝决定找出全国中最幸运的一个人,于是从全国选拔出 n 个很幸运的人,让这 n 个人围着圆桌进餐,可是怎么选择出其中最幸运的一个人呢?皇帝决定:从其中一个人从 1 开始报数,按顺序数到第 k ...

  5. Django model中常见Field types , Field options

    AutoField :自增,数据库 BooleanField:布尔型 CharField:字符型 DateField:日期,datetime.date类的实例.有两个常用的option,auto_no ...

  6. 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植

    为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...

  7. Mantis 1.2.19 on Windows Server 2012 r2 datacenter 安装及配置随笔

    一.前言 新的小团队需要搭建一个缺陷管理的工具,之前用过bugfree,感觉比较适合,但是 禅道不太适合,放弃之,于是又百度推荐的: .JTrac13.BugNet14.BugOnline15.eTr ...

  8. lua 和 c

    lua程序其实本身并不能执行,它必须依靠c语言编写的解释器来解释执行,或者说解释器为lua脚本的执行,提供了一个运行环境(lua_state),其中包括函数堆栈,内存分配和回收等机制. 理论上,lua ...

  9. lua 面向对象

    对象的特点是: 对象拥有自己的数据,两个对象即使数据完全相同,他们也是相互独立的: 对象之间可以共享对象的行为,也就是他们的方法是一致的: lua中的table就非常适合作为一个对象,可以在table ...

  10. express html模板项目搭建

    初学express的亲们,估计要弄ejs和jade会比较烦躁,那就先html开始,简单笔记如下:   1.新建项目文件夹demotest 2.进入demotest    >express -e ...