• 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`语句。

    1
    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 操作最基本的网络请求了。

    http://www.cnblogs.com/maple023/p/4256552.html

  • 相关阅读:
    Java 时区转换(UTC+8 到 UTC 等等)
    spring 与 springmvc 的区别和定义
    字符串加密解密(Base64)
    上传视频本地预览问题
    vue 监听store中的数值
    判断对象是否为空
    正则 验证是否包含特殊字符
    js 过滤日期格式
    vue methods computed watch区别
    for + setTimeout
  • 原文地址:https://www.cnblogs.com/cmblogs/p/4551924.html
Copyright © 2020-2023  润新知