Dots 0.5.1

Dots 0.5.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2018年4月
SPM支持 SPM

Amr Salman 维护。



Dots 0.5.1

Dots

CI Status Version License Platform

banner

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

要求

  • iOS 8.0+ / macOS 10.10+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 8.0+
  • Swift 4.0+

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖关系管理器。您可以使用以下命令安装它

$ gem install cocoapods

CocoaPods 1.1+ 是构建 StorageManager 所必需的。

要使用 CocoaPods 将 StorageManager 整合到您的 Xcode 项目中,请在您的 Podfile 中指定它。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Dots'
end

然后,运行以下命令

$ pod install

Carthage

Carthage 是一个分布式依赖管理器,它构建您的依赖并提供二进制框架。

您可以使用以下命令通过 Homebrew 安装 Carthage

$ brew update
$ brew install carthage

要使用 Carthage 将 StorageManager 整合到您的 Xcode 项目中,请在您的 Cartfile 中指定它。

github "iAmrSalman/Dots" ~> 0.5.0

运行 carthage update 来构建框架并将构建好的 Dots.framework 拖入您的 Xcode 项目。

Swift Package Manager

Swift Package Manager 是一个用于自动分发的 Swift 代码的工具,集成了 swift 编译器。它处于早期开发阶段,但 StorageManager 已支持在支持的平台上使用。

一旦您已经设置好了 Swift 包,只需将 StorageManager 添加到 Package.swift 中的 dependencies 值即可。

dependencies: [
    .package(url: "https://github.com/iAmrSalman/Dots.git", from: "0.5.0")
]

使用说明

发起请求

import Dots

Dots.defualt.request("<URL>") { (dot: Dot) in
    
  print(dot.response) // HTTP URL response
  print(dot.data)     // server data
  print(dot.error)    // Errors from request processing
  print(dot.json)     // JSON dictionary [String: Any]

}

HTTP 方法

HTTPMethod 枚举列出 HTTP 方法

public enum HTTPMethod: String {
  case options = "OPTIONS"
  case get     = "GET"
  case head    = "HEAD"
  case post    = "POST"
  case put     = "PUT"
  case patch   = "PATCH"
  case delete  = "DELETE"
  case trace   = "TRACE"
  case connect = "CONNECT"
}

这些值可以作为 request 函数中的 method 参数传递

Dots.defualt.request("<URL>") // method defaults to `.get`
Dots.defualt.request("<URL>", method: .post)
Dots.defualt.request("<URL>", method: .put)
Dots.defualt.request("<URL>", method: .delete)

request 方法的默认参数为 .get

参数编码

带有URL编码参数的GET请求

let parameters: Parameters = ["foo": "bar"]

Dots.defualt.request("<URL>", parameters: parameters) // defaults url encoding
Dots.defualt.request("<URL>", parameters: parameters, encoding: .url)

// <URL>?foo=bar

带有URL编码参数的POST请求

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

Dots.defualt.request("<URL>", method: .post, parameters: parameters) // defaults url encoding
Dots.defualt.request("<URL>", method: .post, parameters: parameters, encoding: .url)

//httpHeader: Content-Type: application/x-www-form-urlencoded; charset=utf-8

// HTTP body: foo=bar&baz[]=a&baz[]=1&qux[x]=1&qux[y]=2&qux[z]=3

带有JSON编码参数的POST请求

let parameters: Parameters = [
  "foo": [1,2,3],
  "bar": [
    "baz": "qux"
  ]
]

Dots.defualt.request("<URL>", method: .post, parameters: parameters, encoding: .json)

//HTTP header: Content-Type: application/json

// HTTP body: {"foo": [1, 2, 3], "bar": {"baz": "qux"}}

HTTP响应头

支持在全局request方法中直接添加自定义HTTP头。这使得轻松将HTTP头附加到Request变得简单。

let headers: HTTPHeaders = [
  "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
  "Accept": "application/json"
]

Dots.defualt.request("<URL>", headers: headers)

并发

支持选择异步和同步。

Dots.defualt.request("<URL>", concurrency: .async) // concurrency defaults to `.async`
Dots.defualt.request("<URL>", concurrency: .sync)

最大并发请求数

支持定制最大并发执行请求数。

默认情况下,检查设备是否连接到蜂窝网络,最大并发请求数限制为2,而Wi-Fi可以执行最多6个并发请求。

let customDots = Dots(maxConcurrentOperation: <Int>)
customDots.request("<URL>") 

扩展

UIImageView

imageView.setImage(withURL: "<URL>")

作者

Amr Salman,[email protected]

许可

Dots程序遵从MIT许可。更多信息请查看LICENSE文件。