我在其中一个应用程序中使用了Alamofire
。现在,应用程序需要更新。所以我用新版本更新了Alamofire
连播。
现在我不知道如何使用新版本的Alamofire
在Swift 5中调用Alamofire
请求。我已经尝试过了,但是抛出错误。我搜索了很多,但未找到任何解决方法。
[谁能帮我用Alamofire
打个电话吗?
错误:
- 协议类型'Any'不能符合'Encodable',因为只有具体类型可以符合协议
- 类型“结果”的值没有成员“ isFailure”
- 类型“结果”的值没有成员“错误”
我创建了一个示例应用程序只是为了提出一个想法
struct Article: Codable {
let firstName: String
let lastName: String
let email: String
}
struct User: Encodable {
let name: String
let password: String
}
// data model
let userStruct = User(name: "test", password: "pass")
// data dictionary
let userDictionary = ["name": "test", "password": "pass"]
func getData() {
let headers: HTTPHeaders = ["Access-Token-Key": ""]
let request = AF.request(url,
method: .post,
parameters: userDictionary, // or 'userStruct' because both conform to 'Encodable' parameters.
encoder: JSONParameterEncoder.default,
headers: headers)
// Receive and decode the server's JSON response.
request.responseDecodable(of: Article.self) { response in
switch response.result {
case let .success(result):
// the decoded result of type 'Article' that you received from the server.
print("Result is: \(result)")
case let .failure(error):
// Handle the error.
print("Error description is: \(error.localizedDescription)")
}
}
}
如果要使用parameters
类型的[String: Any]
,请使用Alamofire version 4.9.1
。我在示例应用程序中使用的版本是5.0.0-rc.3