快速请求Alamofire 5

问题描述 投票:0回答:1

我在其中一个应用程序中使用了Alamofire。现在,应用程序需要更新。所以我用新版本更新了Alamofire连播。

现在我不知道如何使用新版本的Alamofire在Swift 5中调用Alamofire请求。我已经尝试过了,但是抛出错误。我搜索了很多,但未找到任何解决方法。

[谁能帮我用Alamofire打个电话吗?

错误:

  1. 协议类型'Any'不能符合'Encodable',因为只有具体类型可以符合协议
  2. 类型“结果”的值没有成员“ isFailure”
  3. 类型“结果”的值没有成员“错误”

A

alamofire ios13 swift5 xcode11.3
1个回答
0
投票

我创建了一个示例应用程序只是为了提出一个想法

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

© www.soinside.com 2019 - 2024. All rights reserved.