NSURLConnection的异步请求方式

iOS5.0 SDK NSURLConnection类新增的sendAsynchronousRequest:queue:completionHandler:方法

sendAsynchronousRequest可以很容易地使用NSURLRequest接收回调,完成http通信。

1. post数据

 1 - (void)httpAsynchronousRequest{
 2
 3     NSURL *url = [NSURL URLWithString:@"http://url"];
 4
 5     NSString *post=@"postData";
 6
 7     NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
 8
 9     NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
10     [request setHTTPMethod:@"POST"];
11     [request setHTTPBody:postData];
12     [request setTimeoutInterval:10.0];
13
14     NSOperationQueue *queue = [[NSOperationQueue alloc]init];
15     [NSURLConnection sendAsynchronousRequest:request
16                                        queue:queue
17                            completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
18                                if (error) {
19                                    NSLog(@"Httperror:%@%d", error.localizedDescription,error.code);
20                                }else{
21
22                                    NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
23
24                                    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
25
26                                    NSLog(@"HttpResponseCode:%d", responseCode);
27                                    NSLog(@"HttpResponseBody %@",responseString);
28                                }
29                            }];
30
31
32 }

2. 拉取图片

 1         [NSURLConnection sendAsynchronousRequest:
 2          [NSMutableURLRequest requestWithURL:[NSURL URLWithString:imageStr]]
 3                                        queue:[NSOperationQueue mainQueue]
 4                            completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
 5         {
 6                            NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
 7                            if (!error && responseCode == 200) {
 8
 9                                UIImage *_img = [[UIImage alloc] initWithData:data];
10
11                            }else{
12                                // placeHolder image
13                            }
14         }];

NSURLConnection的异步请求方式

时间: 2024-11-16 03:26:56

NSURLConnection的异步请求方式的相关文章

js中同步与异步请求方式

异步请求方式: $.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POST", dataType : 'json/xml/html', success : function (result){ do something.... } }); 同步请求方式: $.ajax({ url : 'your url', data:{name:value}, cache : false

iOS网络: NSURLConnection进行异步请求

介绍:  iOS 的应用,一般是需要通过网络进行数据的交互的,这样你的应用就成为了联机的应用了. iOS SDK 允许我们向网络发送请求,并且能够很方便的通过 NSURLConnection 这个类 来获取和发送数据,我们可以通过 NSJSONSerialization 对 JSON 进行序列化和反序列化. XML 的解析则使用 NSXMLParser 类.可以通过 Twitter 框架进行 Twitter 进行连接. 一  通过NSURLConnection进行异步下载 1. NSURLCon

NSURLConnection同步异步请求

以百度图片为例: 先在xib文件中添加一个UIImageView控件 一:同步方法 1 //获取URL 2 NSURL *url=[NSURL URLWithString:@"http://pic1a.nipic.com/2008-11-13/200811133748109_2.jpg"]; 3 //发送请求 4 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 5 //发起同步请求 6 NSData *data=[NSU

megi非常方便的post Ajax异步请求方式(删除)!

1.Grid绑定数据的时候就绑定了删除的单击事件和对应的参数. 2.js调用removeCurrency()方法 //删除常用币种的方法    removeCurrency: function (itemID, rowIndex) {        //删除确认信息 Are you sure to delete        var delectConfirm = LangKey.AreYouSureToDelete;        //弹出  确认     和    取消的提示框       

使用NSURLConnection的网络请求与封装

访问网络的方式: 1.同步请求: 会阻塞主线程 2.异步请求: 无法取消 请求过程在多线程执行 基本流程: 1.构造NSURL实例. 2.生成NSURLRequest请求. 3.通过NSURLConnection发送请求. 4.通过NSURLRespond实例和NSError实例分析结果. 5.接受返回数据. 使用NSURLConnection发起异步请求: 第一种方法: - (void)setUrl:(NSURL *)url { //使用同异步请求网络 NSMutableURLRequest

ajax,同步请求 ,异步请求

同步请求,异步请求 ,这样的字眼我想既然你能看到这篇文章并且点击进来 ,说明我们应该是听过他的,并且 听得次数还不少,说到异步请求 ,首先我想到就是ajax, ajax的问题一会再说,今天我突然想到,我们平时都会 尽量的去 用ajax使用异步 的方式请求数据, 那么你知道到底是同步请求的数据更快,还是异步请求的数据更快吗? 异步传输是面向字符的传输,它的单位是字符:而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的. 同步传输通常要比异步传输快速得多.接收

ajax同步请求与异步请求的区别

ajax 区别: async:布尔值,用来说明请求是否为异步模式.async是很重要的,因为它是用来控制JavaScript如何执行该请求. 当设置为true时,将以异步模式发送该请求,JavaScript代码将继续执行而不再等待响应,且必须使用一个事件处理函数来监控请求的响应. 如果将async设置为false,则将以同步模式发送该请求, JavaScript将等接收到响应后再继续执行剩余代码. 这意味着如果响应时间很长,则用户在浏览器收到响应之前是将无法与其交互的. 基于这个原因,Ajax应

异步请求(获取json数据)

异步请求 不使用异步请求的时候,请求数据都是整个页面全部刷新一次,这样每次请求都会重新请求所有的资源. 很多时候不需要页面全部刷新, 只需要页面的局部数据刷新即可, 此时就需要发送异步请求来实现局部数据刷新的请求 异步请求简称 Ajax (Asynchronous Javascript And XML) 以前 js 发送异步请求数据, 一般是xml, 现在是json了 Demo: 使用JQ发送 异步请求方式一html: <a href="javascript:void(0)"&g

iOS 网络与多线程--3.异步Get方式的网络请求(非阻塞)

通过Get请求方式,异步获取网络数据,异步请求不会阻塞主线程(用户界面不会卡死),而会建立一个新的线程. 代码如下 ViewController.h文件 1 // 2 // ViewController.h 3 // AppDemo 4 // 5 // Created by JinXin on 15/12/2. 6 // Copyright © 2015年 xx. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 11 // 1.