Swift使用Alamofire实现网络请求

Alamofire是一个用Swift编写的HTTP网络库,由此前热门开源项目AFNetworking的的作者mattt开发,可非常简单地用于异步网络通信。

要获取最新版本的 Alamofire,前往https://github.com/Alamofire/Alamofire然后单击网页右边的Download ZIP按钮。接着在 Finder 中打开起始项目文件夹,,然后将Alamofire-master文件夹拖入到您的主项目文件夹中。

打开Alamofire-master文件夹(现在它位于您的项目文件夹中),然后将Alamofire.xcodeprij文件(注意是蓝色图标!不是白色图标!)直接拖进 Xcode 中的 AlamofireDemo 项目下面,如下图所示:

接下来,单击AlamofireDemo项目,进入General窗口。滚动到Embedded Binaries项,然后单击其下方的 + 号。选择Alamofire.framework,最后点击Add完成添加。

生成并运行您的项目以确保没有任何错误出现,然后就可以进入到下一节内容了。

要使用 Alamofire 的话,首先需要导入它。您需要在每个使用了 Alamofire 类以及函数的文件中添加这条`import`语句。

import Alamofire

Alamofire 是一个功能强大的,Swift 语言 HTTP 网络开发工具包。支持各种 HTTP Method、JSON、文件上传、文件下载和多种认证方法。

接下来我们来看具体操作

GET请求

Alamofire.request(.GET, "http://httpbin.org/get")

包含参数

Alamofire.request(.GET,
                  "http://httpbin.org/get",
                  parameters: ["foo": "bar"])

包含 Response 处理

Alamofire.request(.GET,
                  "http://httpbin.org/get",
                  parameters: ["foo": "bar"])
         .response { (request, response, data, error) in
                     println(request)
                     println(response)
                     println(error)
                   }

POST请求

let parameters = [
    "foo": "bar",
    "baz": ["a", 1],
    "qux": [
        "x": 1,
        "y": 2,
        "z": 3
    ]
]

Alamofire.request(.POST,
                  "http://httpbin.org/post",
                  parameters: parameters)

下载一个文件

Alamofire.download(.GET,
                  "http://httpbin.org/stream/100",
                  destination: { (temporaryURL, response) in
    if let directoryURL = NSFileManager.defaultManager()
                          .URLsForDirectory(.DocumentDirectory,
                                            inDomains: .UserDomainMask)[0]
                          as? NSURL {
        let pathComponent = response.suggestedFilename

        return directoryURL.URLByAppendingPathComponent(pathComponent)
    }

    return temporaryURL
})

上传文件

let fileURL = NSBundle.mainBundle()
                      .URLForResource("Default",
                                      withExtension: "png")
 
Alamofire.upload(.POST,
                 "http://httpbin.org/post",
                 file: fileURL)

下载图片

Alamofire.request(.GET, "/article/image/20150128/54c85e49bfa8d25764000f47/small_f3338d9cdf932cc3c0464dcb523361c5.jpg").response() {(_, _, data, _) in
            let image = UIImage(data: data! as NSData)
            self.imageView.image = image
        }

现在您已经学会了如何使用 Alamofire 操作最基本的网络请求了。

但是有可能因为 framework 的原因  在真机上运行失败。千万要淡定,请看下篇!!!

时间: 2024-12-25 06:19:17

Swift使用Alamofire实现网络请求的相关文章

[Swift 工作tips] 之 使用Alamofire做网络请求时设置请求超时(timeout)时间

在应用开发过程中,经常需要网络请求,在网络请求的过程中,一般的第三方网络框架的超时时间比较长为15秒: 那么,我们如何来指定请求的超时时间呢? 在Swift的世界里,比较有名的网络是Alamofire   GitHut地址:https://github.com/Alamofire/Alamofire 那么,在使用Alamofire 的时候,设置Alamofire的请求时间如下: 本例代码如下: 1 var alamofireManager : Manager? 2 // 设置请求的超时时间 3

[Swift通天遁地]四、网络和线程-(4)使用Alamofire实现网络请求

本文将演示如何使用第三方库实现网络请求服务. 首先确保在项目中已经安装了所需的第三方库. 点击[Podfile],查看安装配置文件. 1 source 'https://github.com/CocoaPods/Specs.git' 2 platform :ios, '12.0' 3 use_frameworks! 4 5 target ‘DemoApp’ do 6 pod 'Alamofire', '~> 4.0' 7 end 根据配置文件中的相关配置,安装第三方库. 然后点击打开[DemoA

iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战

UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高级知识:网络请求,JSON数据解析一起应用到一个项目中来. 好了,废话不多说,我们直接开始吧. 首先看看最终的效果: 是不是很简单,就是个UItableView显示一些简单的数据,如果你真的觉得太简单了,那么请绕道,寻找更深入东西,但或者没有你想的那么简单,这不仅仅是一个tableView,为什么呢

用Alamofire进行网络请求的一段代码解析

/* 向服务器发送请求: request实际上有四个参数,但是后两个参数都设定为了默认值,所以在调用的时候只要初始化前两个参数就可以. 第一个参数是设定向服务器发起的请求的方法,通常为GET方法和POST方法. 第二个参数就是URL地址. 第三个参数是填写一些必要的信息,比如说使用密钥. 该方法返回一个Alamofire.Request对象 responseJSON方法有一个必包作为参数.这个必包有四个参数,没有返回值.但是responseJSON有一个Alamofire.request的返回值

Swift教程16-使用Swift调用AFNetworking进行网络请求

如何使用Swift进行网络请求呢? 我们首先创建一个Swift工程,工程名是SwiftDemo 然后在该工程中新建一个 Oc的类,那么Xcode会询问你是否创建 桥接 Oc和 Swift的 SwiftDemo-Bridging-Header.h文件 选择YES就会生成 工程名-Bridging-Header.h文件,在这个文件中我们引入Oc框架对应的头文件即可实现在Swift工程中调用Oc代码 目前的AFNetworking框架是Oc写的,我们要在Swift使用AF的话,则需要在 Bridgin

Swift: 用Alamofire做http请求,用ObjectMapper解析JSON

演示样例代码看最后. 跟不上时代的人突然间走在了时代的前列,果然有别样的风景.首先歧视一下AFNetworking.这个东西实在太难用了.不想封装都不行,要不写一大堆代码. NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"]; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL.

用Alamofire进行网络请求的一段代码解析(二)

/* Router路由器,这个枚举类型采用了URLRequestConvertible协议.采用这个协议的类型,是用来构造URL请求的.这个协议只有一个只读属性URLRequest,它是NSURLRequest类型的. */ enum Router: URLRequestConvertible { static let baseURLString = "https://api.500px.com/v2" static let consumerKey = "4qf9GGuzHw

Swift网络请求(Moya篇)

在使用Alamofire进行网络请求的时候,相信大部分的同学都会封装一个抽象的NetworkLayer,如"APIManager" 或者 "NetworkModel"等等.但是位置业务功能增加,会渐渐混合各种请求,不够清晰,而Moya能很好地解决这类问题.Moya在Alamofire基础上进行封装,是一个允许高度自定义的网络层,可以根据具体的需求进行接口的设置.具体的介绍可以参考Moya的官方链接,结构图如下: 接下来就介绍一下Moya的一些常见的用法: (一)根据

swift中第三方网络请求库Alamofire的安装与使用

swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面我们就介绍一个这个库的安装与使用. 一.安装包管理工具CocoaPods 由于国内容易被墙,速度也非常的慢,这里我们使用提供的源 http://ruby.taobao.org/ gem sources --remove https://rubygems.org/ gem sources –a htt