swift - Swift 获取请求返回未经授权
问题描述
我正在使用 get 请求从 predicthq 请求数据,出于某种原因,我不断收到 {"error": "unauthorized"}
JSON 响应的响应。我现在已经更改了几次 API,但没有运气。我已经在 Postman 中尝试过,并且数据正在返回......
这是他们提供的 python 示例:
response = requests.get(
url="https://api.predicthq.com/v1/events",
headers={
"Authorization": "Bearer $ACCESS_TOKEN",
"Accept": "application/json"
}
)
这是我正在使用的请求,API 密钥是 100% 正确的,因为我用它在他们的网站上发出请求:
let url = URL(string: "https://api.predicthq.com/v1/events")
guard let requestUrl = url else { fatalError() }
// Create URL Request
var request = URLRequest(url: requestUrl)
// Headers
request.addValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Accept")
// Specify HTTP Method to use
request.httpMethod = "GET"
// Send HTTP Request
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
// Check if Error took place
if let error = error {
print("Error took place \(error)")
return
}
// Read HTTP Response Status code
if let response = response as? HTTPURLResponse {
print("Response HTTP Status code: \(response.statusCode)")
}
// Convert HTTP Response Data to a simple String
if let data = data, let dataString = String(data: data, encoding: .utf8) {
print("Response data string:\n \(dataString)")
}
}
task.resume()
编辑:我也尝试过使用 AlamoFire 获得相同的结果。
let path = "https://api.predicthq.com/v1/events"
let headers: HTTPHeaders = ["Authorization": "Bearer \(token)"]
AF.request(path, method: .get, headers: headers)
.responseJSON { (response) in
if let data = response.data, let dataString = String(data: data, encoding: .utf8) {
print("Response data string:\n \(dataString)")
}
}
解决方案
好的,问题已经确定。"https://api.predicthq.com/v1/events"
最后需要 a /
,它工作正常。
推荐阅读
- c# - 如何从 Oracle 数据库获取定期更新到客户端(轮询除外)?
- push-notification - 如何正确处理注册用户的登录/注销而不向注销用户发送通知?
- c# - C# MongoDB - 从数据库中读取一条记录并将其写入流
- c# - 一对一的EF关系
- angular - angular - 如何将组件内声明的变量的值获取到服务文件?
- java - 为什么用户在 Java 中总是返回 true?
- c# - “VirtualButtonBehaviour”不包含“RegisterOnButtonPressed”的定义
- java - 将 httpheaders 的映射添加到构建器
- html - 如何在css中设置不透明度
- sql - 在 SQL Pivot 上使用 Min 聚合