博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS网络编程-ASIHTTPRequest框架同步请求
阅读量:7105 次
发布时间:2019-06-28

本文共 2041 字,大约阅读时间需要 6 分钟。

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

1、实现GET同步请求
实现GET同步请求使用最基本请求类ASIHTTPRequest就可以了。我们还是使用MyNotes应用为例,只考虑查询功能实现,修改主视图控制器MasterViewController.m的startRequest方法如下:
 

 
  1. -(void)startRequest 
  2.  
  3.  
  4. NSString *strURL = [[NSString alloc] initWithFormat: 
  5.  
  6. @”http://iosbook3/mynotes/webservice.php?email=%@&type=%@&action=%@”, 
  7.  
  8. @”<你的iosbook1.com用户邮箱>”,@”JSON”,@”query”]; 
  9.  
  10. NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; 
  11.  
  12. ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  13.  
  14. [request startSynchronous]; 
  15.  
  16. NSLog(@”请求完成…”); 
  17.  
  18. NSError *error = [request error]; 
  19.  
  20. if (!error) { 
  21.  
  22. //NSString *response = [request responseString]; 
  23.  
  24. NSData *data  = [request responseData]; 
  25.  
  26. NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data 
  27.  
  28. options:NSJSONReadingAllowFragments error:nil]; 
  29.  
  30. [self reloadView:resDict]; 
  31.  
  32.  

使用ASIHTTPRequest类,需要引入头文件ASIHTTPRequest.h。
2、实现POST同步请求
发送POST方法的请求,无论同步还是异步请求都是使用ASIFormDataRequest类,只不过它们稍微有些不同。本节我们只介绍同步请求下使用ASIFormDataRequest类来发送POST方法。修改主视图控制器MasterViewController.m的startRequest方法如下:
 

 
  1. -(void)startRequest 
  2.  
  3.  
  4. NSString *strURL = @”http://iosbook3/mynotes/webservice.php”; 
  5.  
  6. NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; 
  7.  
  8.   
  9.  
  10. ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
  11.  
  12. [request setPostValue:@ "<你的iosbook1.com用户邮箱>" forKey:@"email"];                ③ 
  13.  
  14. [request setPostValue:@"JSON" forKey:@"type"]; 
  15.  
  16. [request setPostValue:@"query" forKey:@"action"]; 
  17.  
  18. [request startSynchronous]; 
  19.  
  20. NSLog(@”请求完成…”); 
  21.  
  22. NSError *error = [request error]; 
  23.  
  24. if (!error) { 
  25.  
  26. //NSString *response = [request responseString]; 
  27.  
  28. NSData *data  = [request responseData]; 
  29.  
  30. NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data 
  31.  
  32. options:NSJSONReadingAllowFragments error:nil]; 
  33.  
  34. [self reloadView:resDict]; 
  35.  
  36.  

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

转载地址:http://stdhl.baihongyu.com/

你可能感兴趣的文章
转半角的函数(DBC case)
查看>>
loj10241 取石子游戏1
查看>>
ZROI2018普转提day2t3
查看>>
学习JDK1.8集合源码之--HashSet
查看>>
【九度OJ】题目1204:农夫、羊、菜和狼的故事 -----------状态压缩+搜索
查看>>
【转】ubuntu sudo update与upgrade的作用及区别
查看>>
JMS基本概念
查看>>
XHTML和HTML有什么区别
查看>>
Java的四种引用
查看>>
java.util.ConcurrentModificationException --map
查看>>
synchronized 专题
查看>>
Swing中耗时任务需要另起新线程,这个新线程中更新GUI的操作仍需由EDT来做(转)...
查看>>
多听多想少说(转)
查看>>
m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)
查看>>
C# WebBrowser设置代理
查看>>
位运算的用途
查看>>
C语言与水仙花数
查看>>
(64位)本体学习程序(ontoEnrich)系统配置说明文档
查看>>
谈谈Java的匿名内部类
查看>>
一些位运算的技巧整理
查看>>