Alamofire 5 типа 'Request' не имеет члена 'authorizationHeader' - PullRequest
1 голос
/ 25 марта 2020

После обновления до Alamofire 5 ошибка показа метода «Request.authorizationHeader (пользователь: String, пароль: String)».

Error:- Type 'Request' has no member 'authorizationHeader'

Код:

    // Safely unwrap token
    guard let safeHeader = Request.authorizationHeader(user: consumerKey!, password: consumerSecret!) else {
        return nil
    }

1 Ответ

1 голос
/ 25 марта 2020

То, что раньше было под Request.authorizationHeader(..), теперь под HTTPHeaders.authorization(..), чтобы лучше объяснить это, я приведу здесь код, как он изменился:

До этого коммита мы имел в Request.swift:

/// Returns a base64 encoded basic authentication credential as an authorization header tuple.
///
/// - parameter user:     The user.
/// - parameter password: The password.
///
/// - returns: A tuple with Authorization header and credential value if encoding succeeds, `nil` otherwise.
open class func authorizationHeader(user: String, password: String) -> (key: String, value: String)? {
    guard let data = "\(user):\(password)".data(using: .utf8) else { return nil }
    let credential = data.base64EncodedString(options: [])
    return (key: "Authorization", value: "Basic \(credential)")
}

Поскольку этот коммит в Alamofire 5 мы можем найти его в HTTPHeaders.swift:

/// Returns a `Basic` `Authorization` header using the `username` and `password` provided.
///
/// - Parameters:
///   - username: The username of the header.
///   - password: The password of the header.
///
/// - Returns:    The header.
public static func authorization(username: String, password: String) -> HTTPHeader {
    let credential = Data("\(username):\(password)".utf8).base64EncodedString()

    return authorization("Basic \(credential)")
}

Это означает, что теперь вы должны быть в состоянии сделать то же самое, выполнив:

let headers: HTTPHeaders = [
        .authorization(username: consumerKey!, password: consumerSecret!),
        .accept("application/json")
    ]
...