QNetworking 1.1.5

QNetworking 1.1.5

Laura 维护。



  • Quadram iOS 团队

QNetworking

安装

pod 'QNetworking'

FormDataEncoder

使用

创建一个遵守 FormTransformable 协议的对象

import QNetworking

struct MyForm {
    let id: Int
    let photo: Data
    let filePDF: Data
}

extension MyForm: FormTransformable {
    var formDict: [String : Any] {
        var dict = [String: Any]()
        dict["id"] = id
        dict["photo"] = photo
        dict["file"] = FormFile(name: "FileName", data: filePDF, type: "application/pdf", fileName: "name" + ".pdf")
        return dict
    }
}

使用 FormDataEncoder 将您的对象编码为要发送给服务器的数据

let form = MyForm(...)
let formEnc = FormDataEncoder(boundary: API_BOUNDARY)
let data = try? formEnc.encode(form)

高级使用

通常您不需要使用两个内部结构 FormFieldFormFile,前者将从您的key:value字典转换而来,后者将从您的key:data字典转换而来,但如果需要使用其他MIME类型,您将不得不像在用法示例中一样直接使用FormFile。

QRequestable

将您的枚举类型遵从于 QRequestable 以获取对 .request 的访问,这将为您提供一个 URLRequest

使用方法

enum API {
    case login(username: String)
    case pub(id: Int)
}

extension API: QRequestable {
    /* Conform to QRequestable */
}

用于您的 URLSession

let dataTask = URLSession.shared.dataTask(with: API.pub(id: 3).request)

示例