【问题标题】:How to set method, header, parameter in Alamofire 4 and Swift 3如何在 Alamofire 4 和 Swift 3 中设置方法、标题、参数
【发布时间】:2016-10-05 14:44:25
【问题描述】:

在过去的Alamofire 版本中,对于发送方法、标头和参数,我曾经这样做过:

Alamofire.request(.GET, URLRequest, headers:headers, parameters: parameters)

但是版本 4 和 swift 3 是不同的。 如何设置方法、发送标头和参数?

【问题讨论】:

    标签: ios swift3 alamofire


    【解决方案1】:

    Alamofire github 的迁移指南很好地解释了这一点。

    看这里:

    // Alamofire 3
    let parameters: [String: AnyObject] = ["foo": "bar"]
    
    Alamofire.request(.GET, urlString, parameters: parameters, encoding: .JSON)
    .progress { bytesRead, totalBytesRead, totalBytesExpectedToRead in
        print("Bytes: \(bytesRead), Total Bytes: \(totalBytesRead), Total     Bytes Expected: \(totalBytesExpectedToRead)")
    }
    .validate { request, response in
        // Custom evaluation closure (no access to server data)
        return .success
    }
    .responseJSON { response in
        debugPrint(response)
    }
    
    // Alamofire 4
    let parameters: Parameters = ["foo": "bar"]
    
    Alamofire.request(urlString, method: .get, parameters: parameters, encoding: JSONEncoding.default)
    .downloadProgress(queue: DispatchQueue.utility) { progress in
        print("Progress: \(progress.fractionCompleted)")
    }
    .validate { request, response, data in
        // Custom evaluation closure now includes data (allows you to parse data to dig out error messages if necessary)
        return .success
    }
    .responseJSON { response in
        debugPrint(response)
    }
    

    【讨论】:

      【解决方案2】:

      迁移指南解释的很好,但是示例中没有标头,为了避免混淆,下面我添加一个GET请求的示例来添加它们。

      Alamofire.request(URL, method: .get, parameters: parameters, headers: headers)
          .validate { request, response, data in
              return .success
          }
          .responseJSON { response in
              switch response.result {
              case .success:
                  // do something
                  break
              case .failure(let error):
                  // handle error
                  break
              }
          }
      

      我在here 中找到了此信息,因此,如果您有与请求中的标头相关的问题,请前往那里查看。

      【讨论】:

        猜你喜欢
        • 2023-03-14
        • 1970-01-01
        • 2017-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-22
        • 1970-01-01
        相关资源
        最近更新 更多