swift - 尝试访问 rapidAPI yahoo Finance 通过 swift 给我错误 403
问题描述
我正在尝试使用 rapidAPI 访问个人项目的 Yahoo Finance API。我注册了一个免费帐户并获得了一个 API 密钥。Rapid API 允许他们的用户复制和粘贴代码来请求数据,所以我拿他们的演示代码来访问 API。在尝试访问有关股票的详细信息时,这是为了快速:
import Foundation
let headers = [
"x-rapidapi-host": "apidojo-yahoo-finance-v1.p.rapidapi.com",
"x-rapidapi-key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" //private key
]
let request = NSMutableURLRequest(url: NSURL(string: "https://apidojo-yahoo-finance-
v1.p.rapidapi.com/stock/get-detail?region=US&lang=en&symbol=APPL")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
当我运行这段代码时,它给了我 403 错误。这意味着根据他们的网站,这些数据是被禁止的。我尝试过使用其他 API 并复制和粘贴演示代码,它们工作正常。此 API 不应贬值,因为它在网站演示中运行。这是我在 Xcode 中给出的返回消息:
解决方案
我刚刚检查了雅虎财经API。GET /get-detail 端点现在似乎已被弃用。尽管它已被弃用,但它仍然对我有用。
确保订阅此 API。这可能是 403 代码的原因
推荐阅读
- html - CSS 网格。隐藏未使用的区域
- tinkerpop - 图遍历名到图名映射
- scala - 如何从 .dat 文件中读取第一条记录并对其进行转换并最终存储在 HDFS 中
- web-services - 在 weblogic12c 上找不到操作的调度方法
- java - 为什么 Android 应用程序上的多线程使用更多计算时间?
- java - textView.setText 不更新文本但也没有错误
- python - 在python中将Excel文件与熊猫合并
- php - 如何使用多维数组以及重叠检查从开始时间和结束时间获取总小时数?
- mysql - 使用 Axios 的 Mysql Express Reactjs Nodejs crud 问题
- arrays - how can i write this algorithm more efficiently ? in a way that reduce time complexity?