ASIHTTPRequest框架使用(1)--发送同步请求

ASIHTTPRequest框架是优秀的第三方OC的HTTP框架,支持Mac OS X和iOS下得HTTP开发。

具有如下优点:

1、支持下载数据放在内存或本地文件

2、容易访问请求和应答HTTP
Header

3、支持Cookie

4、支持GZip请求或应答(?)

5、支持缓存

6、支持同步或异步请求

7、支持HTTPs

但是,ASIHTTPRequest不支持ARC。

配置ASI框架:向项目中导入ASI框架之后,还要向工程中引入一些框架和类库:

CFNetwork.framework,SystemConfiguration.framework,
MobileCoreServices.framework,CoreGraphics.framework和libz.dylib

发送同步请求:

ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest。常用的是ASIHTTPRequest。

ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似于HTML的表单数据,也可以上传数据,默认采用Post请求方式。

ASIFormDataRequest和ASIHTTPRequest都可以进行同步和异步请求。

1、发送 “同步、Get” 请求

使用最基本请求类ASIHTTPRequest就可以了。

- (void)startRequest

{

  NSString *strUrl = [[NSString alloc]
initWithFormat:@"http://iosbook3.com/service/mynotes/webservice.php?      email=%@&type=%@&action=%@",@"[email protected]",@"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];        【1】

    NSDictionary *resDict = [NSJSONSerialization
JSONObjectWithData:data options:NSJSONReadingAllowFragments
error:nil];

    。。。。

  }

}

【1】:调用请求对象的responseData方法获取从服务器端应答回来的结果,它返回值为NSData类型。如果想返回字符串,使用responseString方法。

2、发送 “同步、Post” 请求

发送Post方法请求,无论是同步还是异步请求,都是使用ASIFormDataRequest类。

- (void)startRequest

{

    NSString *strUrl = @"http://iosbook3.com/service/mynotes/webservice.php";
 【1】

    NSURL *url = [NSURL
URLWithString:[strUrl URLEncodedString]];

    ASIFormDataRequest *request = [ASIFormDataRequest
requestWithURL:url];

    //  设置Post方式的请求参数信息

    [request setPostValue:@"[email protected]" forKey:@"email" ];
 【2】

    [request setPostValue:@"JSON" forKey:@"type" ];      
                     
    【3】

    [request setPostValue:@"query" forKey:@"action" ];      
                     
  【4】

    //  发送
"同步、Post" 请求

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

      。。。。

    }

}

【1】:可以看出,URL后没有跟请求参数,不再是Get请求了。

【2】、【3】、【4】:设置Post方法的参数。

时间: 2024-07-31 08:42:22

ASIHTTPRequest框架使用(1)--发送同步请求的相关文章

ASIHTTPRequest框架使用(2)--发送异步请求

同步请求一般只是用在某个子线程中使用,而不在主线程中使用.异步请求的用户体验要比同步请求好,因此一般情况下异步请求用的多. ASIHTTPRequest和ASIFormDataRequest两个请求类都可以发送异步请求.ASIFormDataRequest继承了ASIHTTPRequest异步请求方法,所以重点介绍ASIHTTPRequest的异步请求. 1.借助Delegate处理请求 - (void)startRequest { NSString *strUrl = [[NSString a

ASIHTTPRequest框架使用(3)--多线程并发请求

需要的类:ASIHTTPRequest和ASINetworkQueue. ASIHTTPRequest被设计成NSOperation子类,ASINetworkQueue被设计成NSOperationQueue子类. NSOperationQueue和NSOperation关系的形象比喻: NSOperationQueue看成一个线程管理器,那么一个NSOperation就相当于一个线程,它们被添加到NSOperationQueue队列中有序地执行. ASINetworkQueue和ASIHTTP

ajax如何可以发送同步请求

async:false为同步,这个testAsync()方法中的Ajax请求将整个浏览器锁死,只有tet.php执行结束后,才可以执行替他操作. 为true时,ajax请求是异步的,但是其中有个问题:testAsync()中的ajax请求异步执行的,那么当tet.php还未执行完,就可能已经执行ajax请求后面的操作. 原文地址:https://www.cnblogs.com/story1/p/8136315.html

ASIHTTPRequest框架使用总结系列之阿堂教程2(同步请求)

从本篇开始,阿堂结合一些具体代码来说明.在ASIHTTPRequest框架中,与http请求相关的类有ASIHTTPRequest  和 ASIFormDataRequest,其中最常用的是 ASIHTTPRequest ,ASIFormDataRequest 是ASIHTTPRequest  的子类,可以发送html类似的表单数据,也可以上传数据,默认采用其它httpy请求方式.它们都可以进行异步或同步请求. 从性能和用户体验来说,阿堂是不建议用同步方式的,建议用异步方式.就是说在主线程中一般

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" #

ASIHTTPRequest框架的简单使用

ASIHttpRequest是一款及其强劲的HTTP訪问开源项目.让简单的API完毕复杂的功能,如:异步请求,队列请求,GZIP压缩.缓存,断点续传,进度跟踪,上传文件.HTTP认证.在新版本号中,还增加了Object-C闭包Block的支持,让我们的代码更加精简灵活. 依赖的5个库: CFNetwork SystemCorfiguration MobileCoreServices 和libz.libxml2 ASIHttpRequest库内容能够到 Github 开源网去下载 一.ASIHtt

IOS之同步请求、异步请求、GET请求、POST请求(整理复习))

1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3.GET请求,将参数直接写在访问路径上.操作简单,不过容易被外界看到,安全性不高,地址最多255字节: 4.POST请求,将参数放到body里面.POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面,不易被捕获. 1.     同

IOS - IOS之同步请求、异步请求、GET请求、POST请求(转载)

转载:http://www.open-open.com/lib/view/open1355055986679.html 1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行 3.GET请求,将参数直接写在访问路径上.操作简单,不过容易被外界看到,安全性不高,地址最多255字节: 4.POST请求,将参数放到body

JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)

一.使用Ajax发送get请求 发送异步请求的步骤 - 获取Ajax对象:获取 XMLHttpRequest对象实例 - 创建请求:调用XMLHTTPRequest对象的open方法 - 设置回调函数:为Ajax对象的 onreadystatechange事件设定响应函数 - 发送请求:调用Ajax对象的send方法 - 获取Ajax对象     - 创建请求 - 注意: - true:表示发送异步请求(当Ajax对象发送请求时,用户仍然可以对当前页面做其它的操作) - false:表示发送同步