文档章节

IOS 学习笔记 —— ASIHTTPRequest 之 发送异步请求

冰珊孤雪
 冰珊孤雪
发布于 2014/12/05 19:47
字数 260
阅读 233
收藏 0

1 引入头文件

#import "ASIHTTPRequest.h"
#import "ASIHTTPRequestDelegate.h"
#import "JSONKit.h"

2 创建请求

NSURL *postUrl = [NSURL URLWithString:@"INPUT YOUR URL STRING"];
NSLog(@"postUrl = %@", postUrl);
    
ASIHTTPRequest *request = [[ASIHTTPRequest alloc]initWithURL:postUrl];
request.delegate = self;//注意:需要实现协议<ASIHTTPRequestDelegate>
request.requestMethod = @"POST";//发送方式
[request startAsynchronous];//发送异步请求

3 响应请求结果

#pragma mark - ASIHTTPRequest,请求数据成功
-(void)requestFinished:(ASIHTTPRequest *)request{
    NSLog(@"请求数据成功");
    
    @try{
        //Use when fetching binary data
        NSData *data = request.responseData;
        NSLog(@"data = %@", data);

        NSString *str1 = [request responseString];
        NSLog(@"str1 = %@", str1);
        NSString *str2 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"str2 = %@", str2);
        

        //系统自带JSON解析
        NSDictionary *dic1 = [NSJSONSerialization JSONObjectWithData:request.responseData options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"dic1 = %@", dic1);
        //JSONKit解析
        NSDictionary *dic2 = [request.responseData objectFromJSONData];
        NSLog(@"dic2 = %@", dic2);
        NSDictionary *dic3 = [str1 objectFromJSONString];
        NSLog(@"dic3 = %@", dic3);


        //系统自带JSON解析
        NSArray *arr1 = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"arr1 = %@", arr1);
        //JSONKit解析
        NSArray *arr2 = [request.responseData objectFromJSONData];
        NSLog(@"arr2 = %@", arr2);
        NSArray *arr3 = [str1 objectFromJSONString];
        NSLog(@"arr3 = %@", arr3);
        
        NSArray *arr4 = [[NSArray alloc] initWithObjects:data, nil];
        NSLog(@"arr4 = %@", arr4);

        //...
    }
    @catch (NSException *exception) {
    }
    @finally {
    }
}

#pragma mark - ASIHTTPRequest,请求数据失败
-(void)requestFailed:(ASIHTTPRequest *)request{
    NSLog(@"请求数据失败");
}

4 取消请求

if (request != nil) {
    [request cancel];
    [request clearDelegatesAndCancel];
}


© 著作权归作者所有

冰珊孤雪
粉丝 7
博文 28
码字总数 4129
作品 0
苏州
私信 提问
开源中国iOS客户端学习——(五)网络通信ASI类库(1)

如今的应用大部分基予网络,在开源中国iOS客户端源码中关于网络通信方面用了三个类库,ASI和AFNetworking,还有一个苹果官方给出的Reachability用于检测当前网络状况,本文介绍当前用的比较多...

青云_K
2013/01/10
293
0
iOS通过ASIHTTPRequest提交JSON数据

先验知识——什么是ASIHTTPRequest? 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Obj...

浪子艾菲儿
2014/02/18
4.1K
0
ASIHTTPRequest类库简介和使用说明

转载自宝玉的blog 原文地址 http://www.cnblogs.com/dotey/archive/2011/05/10/2041966.html 官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相...

长平狐
2012/11/01
487
0
ASIHTTPRequest类库简介和使用说明

使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac O...

鉴客
2012/01/09
1K
1
(转)ASIHTTPRequest类库简介和使用说明

官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。 可以从上面下载到最新源码,以及获取到相关的资料。 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一...

ioser
2011/06/24
503
0

没有更多内容

加载失败,请刷新页面

加载更多

PHP计算两个经纬度地点之间的距离

/** * 求两个已知经纬度之间的距离,单位为米 * * @param lng1 $ ,lng2 经度 * @param lat1 $ ,lat2 纬度 * @return float 距离,单位米 * @author www.Alixixi.com */function get...

子枫Eric
1分钟前
0
0
Linux—day 4

ch2 需要掌握的命令 (1)cat -n 1.txt (2)more 1.txt (3)head -n 15 initial-setup-ks.cfg (4)tail -n 17 initial-setup-ks.cfg;tail -f initial-setup-ks.cfg (5)cat -n anaconda-ks.c......

呵呵暖茶
14分钟前
4
0
【Kubernetes社区之路】我的PR被抢了

2019年11月的某天,我无意间发现一个PR作者在自己的PR中抱怨自己的PR没被合入,而另一个比自己提交晚且内容几乎一样的PR则被合入了。 字里行间透露些许伤感外加无奈: 作为一名开源爱好者,我...

恋恋美食
21分钟前
3
0
阻塞队列

对于许多线程问题, 可以通过使用一个或多个队列以优雅且安全的方式将其形式化。生产者线程向队列插人元素, 消费者线程则取出它们。 使用队列, 可以安全地从一个线程向另 一个线程传递数据...

ytuan996
22分钟前
2
0
mysql docker 配置

安装   主机上的mysql服务是基于docker安装的,具体安装脚本如下: docker run --detach \--restart always \--publish 3306:3306 --name mysql \--volume /data/mysql/logs:/logs \-...

qwfys
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部