iOS总结:ASIHttpRequest类库发送请求(同步请求和异步请求)

1.发送异步请求

1)在.h中导入头文件

#import "ASIHTTPRequest.h"

2)设置代理

ASIHTTPRequestDelegate

3)URL —-> 发请求 —> 设置代理 —> 开始异步请求

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

//异步请求

//url

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

//发请求

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

//代理

request.delegate = self;

//开始

    [request startAsynchronous];

[self.window makeKeyAndVisible];

return YES;

}

3)若获取返回的文本信息,调用responseString方法,

若获取的是二进制文件,如:图片、MP3文件,则调用NSData方法,获取一个NSData对象

-(void)requestFinished:(ASIHTTPRequest *)request

{

NSString *response = [request responseString];

NSLog(@"%@", response);

NSData *data = [request responseData];

NSLog(@"%@", data);

}

-(void)requestFailed:(ASIHTTPRequest *)request

{

NSError *error = [request error];

NSLog(@"%@", error);

}

输出结果:

文本信息为

二进制信息为

 2.同步请求(和异步请求类似)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

self.window.backgroundColor = [UIColor whiteColor];

//同步请求

//url

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

//发请求

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

//代理

request.delegate = self;

//开始

    [request startSynchronous];

NSError *error = [request error];

if (!error) {

NSString *response = [request responseString];

NSLog(@"%@", response);

}

[self.window makeKeyAndVisible];

return YES;

}

  一般情况下,应该优先使用异步请求,当在主线程中使用ASIHTTPRequest同步请求,应用程序的界面会锁定,无法进行任何操作,直到请求完成。

时间: 2024-10-12 21:46:04

iOS总结:ASIHttpRequest类库发送请求(同步请求和异步请求)的相关文章

ios开发 ASIHTTPRequest类库

ASIHTTPRequest 是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装.它的特色功能如下: 1,下载的数据直接保存到内存或文件系统里 2,提供直接提交(HTTP POST)文件的API 3,可以直接访问与修改HTTP请求与响应HEADER 4,轻松获取上传与下载的进度信息 5,异步请求与队列,自动管理上传与下载队列管理机 6,认证与授权的支持 7,Cookie 8,请求与响应的GZIP 9,代理请求 1, 添加ASIHTTPRequest

jquery请求servlet实现ajax异步请求

ajax可以发送异步请求实现无刷新效果,但是使用javascript比较麻烦,就query提供了一些封装的方法 ,可以使得操作更为简单: $.ajax()方法: function sendRequest() { $.ajax({ url: "Hello", type: "GET", dataType: "txt", data: "name=zhangsan", complete: function(result){ alert

ajax请求默认都是异步请求,怎么变为同步请求

Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({   url: "some.PHP",   async: false }).responseText; 或者在全局设置Ajax属性 $.ajaxSetup({   async: false   }); 再用post,get就是同步的了 原文地址:https://www.cnblogs.com/songzxblog/p/11136854.html

ios中的ASIHTTPRequest的同步请求和异步请求

1.首先加入ASI开源库 2. WebImageView.h #import <UIKit/UIKit.h> #import "ASIHTTPRequest.h" @interface WebImageView :UIImageView<ASIHTTPRequestDelegate> - (void)setImageURL:(NSURL *)url; @end WebImageView.m #import "WebImageView.h" #

ASIHTTP 框架,同步、 异步请求、 上传 、 下载

ASIHTTPRequest详解 ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目.让简单的 API 完成复杂的功能,如:异步请求,队列请求,GZIP 压缩,缓存,断点续传,进度跟踪,上传文件,HTTP 认证.在新的版本中,还加入了 Objective-C 闭包 Block 的支持,让我们的代码加轻简灵活. 下面就举例说明它的 API 用法. 发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件.所以,在应用程序设计时,大多被用在

小白学 Python 爬虫(32):异步请求库 AIOHTTP 基础入门

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

异步请求取得json数据

一.异步请求 在之前我们请求数据的时候都是整个页面全部刷新了一次,也就是每次请求都会重新请求所有的资源.但是在很多时候不需要页面全部刷新,仅仅是需要页面的局部数据刷新即可,此时需要发送异步请求来实现这种局部数据刷新的要求,异步请求简称 Ajax(Asynchronous Javascript And XML),在之前一般使用js 发送异步请求,请求的数据一般是xml,但是现在 json 出现之后就不使用xml 做为数据传输格式标准了.使用jQuery 发送异步请求,jq中的异步请求发送有很多方式

实现ajax异步请求

1.去除两端空白 function Trim(str){ return str.replace(/(^\s*)|(\s*$)/g, "");} 实现ajax ajax: Asynchronous   :异步 JavaScript And                      :和 XML ajax技术就是利用javascript和xml实现异步交互的功能 ajax有自己的引擎,传统的交互是client和sever直接进行交互, ajax是client把请求发送到ajax引擎,aja

数据下载 - delegate 形式的异步请求

下载数据可以使用同步请求,异步请求 之前有讲到NSString . NSData 类型的同步请求 有NSURLConnection 形式的同步请求 异步请求有block 形式的异步请求,我们需要创建一个队列 在block 内部实现 但是我们最常用的是 delegate 形式的异步请求 #import "ViewController.h" @interface ViewController ()<NSURLConnectionDataDelegate> @property(n