gpt4 book ai didi

ios - 从 URLRequestConvertible 扩展时设置多部分请求的最佳方法是什么

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:47 25 4
gpt4 key购买 nike

我正在为我正在处理的项目(iOS、Swift 3、Alamofire)设置网络层,并且我一直在使用 Alamofire 的文档来执行此操作。

在使用从 URLRequestConvertible 扩展的路由器枚举时决定如何添加多部分请求时,我需要帮助。在 Alamofire 文档中,它解释了如何执行多部分请求,但它的执行方式似乎不太适合路由器和 URLRequestConvertible 协议(protocol)的实现。

这是他们进行分段上传的方式:

Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(unicornImageURL, withName: "unicorn")
multipartFormData.append(rainbowImageURL, withName: "rainbow")
},
to: "https://httpbin.org/post",
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
print(encodingError)
}
}
)

这是我一直关注的路由器的基本实现:

import Alamofire

enum Router: URLRequestConvertible {

//Different cases go here:
case example

var method: HTTPMethod {

switch self {
default:
return .get
}
}

static let basePath = "http://example.com"

var path: String {

switch self {
default:
return ""
}
}

func asURLRequest() throws -> URLRequest {
let url = try Router.basePath.asURL()

var urlRequest = URLRequest(url: url.appendingPathComponent(path))
urlRequest.httpMethod = method.rawValue

//Add needed headers here
switch self {
default:
break
}

// If URL has params, add them here
switch self {
default:
break
}

return urlRequest
}
}

有人可以指出正确的方向,告诉我如何将两者结合起来吗?

最佳答案

Alamofire 有一个分段上传 API,它以 URLRequestConvertible 作为参数。从你上面的例子:

Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append(unicornImageURL, withName: "unicorn")
multipartFormData.append(rainbowImageURL, withName: "rainbow")
},
with: Router.example,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
print(encodingError)
}
})

关于ios - 从 URLRequestConvertible 扩展时设置多部分请求的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45013925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com