iOS网络编程-ASIHTTPRequest框架同步请求-备用
2016-02-24 23:28
706 查看
在ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似与HTML表单数据,也可以上传数据,默认采用POST请求方法。也可以其它的HTTP请求方法。它们都可以进行异步或同步请求。下面我们从最简单的GET同步请求介绍。
1、实现GET同步请求
实现GET同步请求使用最基本请求类ASIHTTPRequest就可以了。我们还是使用MyNotes应用为例,只考虑查询功能实现,修改主视图控制器MasterViewController.m的startRequest方法如下:
使用ASIHTTPRequest类,需要引入头文件ASIHTTPRequest.h。
2、实现POST同步请求
发送POST方法的请求,无论同步还是异步请求都是使用ASIFormDataRequest类,只不过它们稍微有些不同。本节我们只介绍同步请求下使用ASIFormDataRequest类来发送POST方法。修改主视图控制器MasterViewController.m的startRequest方法如下:
1、实现GET同步请求
实现GET同步请求使用最基本请求类ASIHTTPRequest就可以了。我们还是使用MyNotes应用为例,只考虑查询功能实现,修改主视图控制器MasterViewController.m的startRequest方法如下:
-(void)startRequest { NSString *strURL = [[NSString alloc] initWithFormat: @”http://iosbook3/mynotes/webservice.php?email=%@&type=%@&action=%@”, @”<你的iosbook1.com用户邮箱>”,@”JSON”,@”query”]; NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request startSynchronous]; NSLog(@”请求完成…”); NSError *error = [request error]; if (!error) { //NSString *response = [request responseString]; NSData *data = [request responseData]; NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; [self reloadView:resDict]; } }
使用ASIHTTPRequest类,需要引入头文件ASIHTTPRequest.h。
2、实现POST同步请求
发送POST方法的请求,无论同步还是异步请求都是使用ASIFormDataRequest类,只不过它们稍微有些不同。本节我们只介绍同步请求下使用ASIFormDataRequest类来发送POST方法。修改主视图控制器MasterViewController.m的startRequest方法如下:
-(void)startRequest { NSString *strURL = @”http://iosbook3/mynotes/webservice.php”; NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [request setPostValue:@ "<你的iosbook1.com用户邮箱>" forKey:@"email"]; [request setPostValue:@"JSON" forKey:@"type"]; [request setPostValue:@"query" forKey:@"action"]; [request startSynchronous]; NSLog(@”请求完成…”); NSError *error = [request error]; if (!error) { //NSString *response = [request responseString]; NSData *data = [request responseData]; NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; [self reloadView:resDict]; } }
相关文章推荐
- httpd.conf详细解释
- HTTP协议 -- 认清协议常用状态码
- NSCache和NSURLCache、网络缓存优化
- iOS网络2——NSURLSession使用详解
- SharedPreferences保存数据详解<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- SOCket和UDP和TCP的区别
- HttpClient 教程 (一)
- Android Socket网络通信
- BP神经网络的非线性曲线拟合和预测(未完)
- Codeforces Round #304 (Div. 2)E. Soldier and Traveling 网络流
- SendTs2Ip 将TS流发送到IP网络上的小工具(源码)
- https://projecteuler.net/problem=8
- 计算机网络重点知识
- https://projecteuler.net/problem=7
- 网络原理学习1
- 网络交换卡
- 上机题目(初级)- Java网络操作-打印网页(Java)
- 原生Ajax的XMLHttpRequest对象使用指南
- 使用线程进行网络图片下载(一)
- 网络的最大流最小割定理