zoukankan      html  css  js  c++  java
  • ASIHTTPRequest的简单使用

    首先,

    ASIHTTP.framework需要安装以下framework:

    CFNetwork.framework

    SystemConfiguration.framework

    MobileCoreServices.framework

    CoreGraphics.framework

    libz.1.2.3.dylib

    应用举例:

    在需要应用它的代码头文件中加入:

    #import “ASIHTTPRequest.h”

    创建一个同步请求

    这是ASIHTTPRequest最简单的一种使用模式,发送startSynchronous消息后即开始在同一线程中执行HTTP请求,线程将一直等待直到请求结束(请求成功或者失败)。通过检查error属性可以判断请求是否成功或者有错误发生。

    要获取返回的文本信息,调用responseString方法。如果下载的是二进制文件,例如图片、MP3,则调用responseData方法,可以得到一个NSData对象。

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

    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

    [request startSynchronous];

    NSError *error = [request error];

    if (!error)

    {

    NSString *response = [request responseString];

    }

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

    创建一个异步请求

    上例中的同步请求,如果换成异步方式来调用,请求是在后台线程中运行,当请求执行完后再通知调用的线程。这样不会导致主线程进行网络请求时,界面被锁定等情况。

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

    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

    [request setDelegate:self];

    [request startAsynchronous];

    }

    - (void)requestFinished:(ASIHTTPRequest *)request

    {

    // 当以文本形式读取返回内容时用这个方法

    NSString *responseString = [request responseString];

    // 当以二进制形式读取返回内容时用这个方法

    NSData *responseData = [request responseData];

    }

    - (void)requestFailed:(ASIHTTPRequest *)request

    {

    NSError *error = [request error];

    }

  • 相关阅读:
    我的第二个裸板程序之链接地址与存储地址
    ARM你必须知道的事儿——为啥“PC = PC + 8”?
    typedef你真的理解么?
    centos使用--vsftpd配置
    centos使用--zsh
    laravel5.2总结--序列化
    laravel5.2总结--csrf保护
    laravel5.2总结--任务调度
    laravel5.2总结--本地化以及常量的使用
    laravel5.2总结--文件上传
  • 原文地址:https://www.cnblogs.com/417460188dy/p/3370112.html
Copyright © 2011-2022 走看看