zoukankan      html  css  js  c++  java
  • 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 的原因  在真机上运行失败。千万要淡定,请看下篇!!!

  • 相关阅读:
    Django2.1发布,Django2.1新特性
    解决tomcat启动慢问题
    ELKstack简介及环境部署
    Django项目中使用celery做异步任务
    vue moment库格式化处理后端传的日期
    vueAdmin ui基础包
    DRF项目工程基础包
    linux文件系统命令和分区 挂载
    linux解压缩基本命令使用
    vim基本操作
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9928743.html
Copyright © 2011-2022 走看看