iOS网络编程-ASIHTTPRequest框架同步请求

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

http://www.niftyadmin.cn/n/1036863.html

相关文章

iOS网络编程-ASIHTTPRequest异步请求

我们运行程序&#xff0c;如果网速很慢&#xff0c;查询的时候会一直黑屏&#xff0c;直到请求结束画面才出现&#xff0c;这样用户体验很不好。因此同步请求一般只是在某个子线 程中使用&#xff0c;而不在主线程中使用。异步请求的用户体验要比同步请求好&#xff0c;因此一般…

java字节流读取文件内容

我们先编写如下代码 import java.io.FileInputStream; import java.io.IOException;public class text {public static void main(String args[]) throws IOException {FileInputStream File new FileInputStream("D:\\学习案例\\java\\color.java");int by File.…

感谢CSDN编辑精心采访--将人文融入到科技产品中

原文转自CSDN业界《专访关东升&#xff1a;将人文融入到科技产品中》http://www.csdn.net/article/2013-04-02/2814746 摘要&#xff1a;在当今科技发展日新月异&#xff0c;竞争日益激烈的情况下&#xff0c;产品如何在大潮中脱颖而出&#xff0c;避免同质化&#xff1f;为此&…

java字节流 将项目中的图片复制到当前电脑的指定路径下

我们在java项目的src目录下创建一个 staticFile文件夹 下面放一个图片我这里叫 echarts.jpg 然后我们随便找一个目录 我们这里选择了 D:\学习案例\java 创建了一个叫 目的地 的文件夹 里面是空的 然后我们在项目中编写代码如下 //引入依赖包 import java.io.FileInputStre…

iOS网络编程-MBProgressHUD等待指示器

第三方的等待指示器&#xff0c;MBProgressHUD就是第三方提供的等待指示器框架。下面是MBProgressHUD提供的等待指示器样式&#xff0c;它们基本可以分为&#xff1a;未知结束时间和已知结束时间两大类等待指示器&#xff0c;在MBProgressHUD中可以为等待指示器添加标签和详细标…

vue脚手架编译报错Can‘t resolve ‘sass-loader‘ in ‘XXX‘解决方法

问题在于 Vue 不能直接解析sass-loader 解决的办法就是要在你本地安装sass-loader 在项目终端执行代码如下 npm install sass-loader -Dnpm install node-sass -D然后再重新启动项目即可

iOS网络编程实践--蓝牙对等网络通信实例讲解

基于蓝牙对等网络通信就是使用Game Kit中的GKSession、GKSessionDelegate、GKPeerPickerController和GKPeerPickerControllerDelegate来实现。开发过程分为3个步骤&#xff1a;连接、发送数据和接收数据。 下面我们通过一个实例介绍一下基于蓝牙对等网络通信过程。用户点击“连…

iOS网络编程-iOS中Socket编程介绍

使用Socket进行C/S结构编程&#xff0c;连接过程服务器端监听某个端口是否有连接请求。服务器端程序处于堵塞状态&#xff0c;直到客户端向服务器端发出连接请求&#xff0c;服务器端接受请求程序才能向下运行。一旦连接建立起来&#xff0c;通过Socket可以获得输入输出流对象。…