我在尝试使用alamofire和OAuth1验证请求时遇到问题,我正在使用此库执行此操作:https://github.com/phenemann/Authentication/但如果您知道如何使用OAuth1的alamofire,我无法成功请帮助我或告诉我我是什么做错了,非常感谢 .
贝娄是我的进步,直到这一刻
class HttpRestManager{
public static func sendRequest(url: String, authorizationType: AuthorizationType, method: HTTPMethod, parameters: [String: Any]?, headers: NSMutableDictionary, complition: @escaping (_ results: String?, _ errors: Error?, _ statusCode: Int?) -> Void){
let preparedHeaders = prepareHeaders(headers: headers, authorizationType: authorizationType)
let manager = Alamofire.SessionManager.default
manager.session.configuration.timeoutIntervalForRequest = 10
manager.adapter = AuthorizationAdapter()
manager.request(url, method: method, parameters: parameters, encoding: JSONEncoding.default, headers: preparedHeaders).responseString { (response) in
switch response.result{
case .success(let value):
complition(value, nil, response.response?.statusCode)
case .failure(let error):
complition(nil, error, response.response?.statusCode)
}
}
}
}
这是我正在使用的适配器:
class AuthorizationAdapter: RequestAdapter {
private let CONSUMER_KEY = "****";
private let CONSUMER_SECRET = "****";
private let TOKEN_ID = "****";
private let TOKEN_SECRET = "****";
func adapt(_ urlRequest: URLRequest) throws -> URLRequest {
let oAuthMethod = AuthenticationMethod.oauth1(consumerKey: CONSUMER_KEY,
consumerSecret: CONSUMER_SECRET,
accessKey: TOKEN_ID,
accessSecret: TOKEN_SECRET)
let authorizer = Authenticator(method: oAuthMethod)
let authorizedRequest = try? authorizer.signRequest(request: urlRequest)
return authorizedRequest!
}
}