gpt4 book ai didi

ios - Alamofire 不向 eventbrite 发送授权 header

转载 作者:行者123 更新时间:2023-11-30 12:25:34 25 4
gpt4 key购买 nike

我尝试使用 Alamofire 查询 eventbrite,但结果形式有错误

[Result]: SUCCESS: {
error = "NO_AUTH";
"error_description" = "An OAuth token is required for all requests";
"status_code" = 401;
}

我的第一个变体

 func getAdditionalInfo(_ urlPath: String) {
DispatchQueue.global(qos: .background).async {
let headers: HTTPHeaders = [
"Authorization" : "Bearer 34832udsfsdjkfds" // 34832udsfsdjkfds is fake
]

Alamofire.request(urlPath, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers).responseJSON(completionHandler: { (response) in
debugPrint("EventbriteAPIManager response", response)
if response.result.error == nil {

} else {
guard let error = response.result.error else { return }
debugPrint(error)
}
})
}
}

我的第二个变体

func getAdditionalInfo(_ urlPath: String) {
DispatchQueue.global(qos: .background).async {
let sessionManager = SessionManager.default
sessionManager.session.configuration.httpAdditionalHeaders = [
"Authorization" : "Bearer 34832udsfsdjkfds" // 34832udsfsdjkfds is fake
]

request(urlPath, method: .get, parameters: nil, encoding: URLEncoding.default).responseJSON(completionHandler: { (response) in
debugPrint("EventbriteAPIManager response", response)
if response.result.error == nil {

} else {
guard let error = response.result.error else { return }
debugPrint(error)
}
})
}
}

我尝试使用 Postman 发出此请求,一切正常。我该如何修复它?谢谢。

最佳答案

我更改了我的请求,它对我有用。问题是 eventbrite token 不应发送到 header ,而应添加到 URL(如果您在 postman 中测试它,这是最有趣的,那么如果将 token 发送到 header ,它就会起作用)。

private func getEventbriteLocation(_ urlPath: String, success: ((_ eventbriteModel: EventbriteLocationModel) -> Void)?, fail: ((_ error: Error) -> Void)?) {
DispatchQueue.global(qos: .background).async {
guard let BackendTokensModel = BackendAPIManager.shared.BackendTokensModel else {
BackendAPIManager.shared.getTokens(success: { (tokenModel) in
self.getEventbriteLocation(urlPath, success: success, fail: fail)
}, fail: nil)
return
}

let rightURL = urlPath.appending("/?token=\(BackendTokensModel.eventbrite)")
AlamofireManager.shared.request(rightURL, method: .get).responseJSON(completionHandler: { (response) in
if response.result.error == nil {
guard let json = response.result.value as? [String : Any] else { return }
guard let eventbriteModel = Mapper<EventbriteLocationModel>().map(JSON: json) else { return }
success?(eventbriteModel)
} else {
guard let error = response.result.error else { return }
debugPrint(error)
fail?(error)
}
})
}
}

关于ios - Alamofire 不向 eventbrite 发送授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44265661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com