iOS培训之ASIHTTPRequest框架同步请求及代码详情

2016-03-30 11:29:07 528浏览

         在ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似与HTML表单数据,也可以上传数据,默认采用POST请求方法。也可以其它的HTTP请求方法。它们都可以进行异步或同步请求。下面我们从最简单的iOS培训之ASIHTTPRequest框架中GET同步请求介绍吧。

         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];

         }

         }

         使用ASIFormDataRequest需要引入头文件ASIFormDataRequest.h。

         如果我们想发送除了GET和POST以外的其它请求方法,可以使用[request setRequestMethod:@"PUT"]语句设置,其中PUT是请求方法。

查看更多关于“iOS培训资讯”的相关文章>>

标签:

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号