swift - 初学者问题:Swift:NSMutableURLRequest
问题描述
- 想在我的项目中有一些简单的股票数据
- 为此使用 rapidAPI
我有各种初学者错误,我无法解决。一些帮助将不胜感激。试图用谷歌搜索它并阅读苹果文档,但没有走远。这是代码部分:
import Foundation
struct StockDataManager {
let headers = [
"x-rapidapi-host": "yahoo-finance15.p.rapidapi.com",
"x-rapidapi-key": "MYAPIKEY"
]
let request = NSMutableURLRequest(url: NSURL(string: "https://yahoo-finance15.p.rapidapi.com/api/yahoo/qu/quote/AAPL/financial-data")! 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()
}
此时我得到以下错误:
request.httpMethod = "GET"
- 一行中的连续声明必须用';'分隔
- 函数声明的参数列表中应为“(”
- 函数声明体中应为“{”
- 实例方法声明中预期的“func”关键字
- 预期声明
- 'request()' 的无效重新声明
和这里:
dataTask.resume()
- 一行中的连续声明必须用';'分隔
- 函数声明的参数列表中应为“(”
- 函数声明体中应为“{”
- 实例方法声明中预期的“func”关键字
我很确定这是基本的理解,对这个愚蠢的简单问题感到抱歉。提前感谢您的帮助。
解决方案
你不能有代码 (request.httpMethod = "GET") 不是直接在结构中的声明。将其嵌入到函数中,如下所示:
func setRequest() -> NSMutableURLRequest {
let request = NSMutableURLRequest(
url: NSURL(string: "https://yahoo-finance15.p.rapidapi.com/api/yahoo/qu/quote/AAPL/financial-data")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
return request
}
推荐阅读
- data-structures - 我在哪里可以找到 Isabelle/HOL 中图形数据结构的定义?
- jquery - 如何将 Thymleaf 表列值绑定到 Java bean 对象
- javascript - Angular firebase subscribe 函数调用了两次
- php - 使用 Xampp 3.2.4 的 PHP (7.3.9) 空白页
- sql - 获取每个视频的视频评论总数
- javascript - 使用或不使用 vue-moment 在 vue js 中格式化我的日期
- node.js - Sequelize:跨多个数据库的相同模型
- laravel - 当文件夹在单词之间有空格时,文件未从谷歌云存储中列出
- javascript - 在 node.js 中使用 oauth 进行嵌套 API 调用的最佳方法是什么?
- rest - 为 Acumatica Rest API WebService EndPoint 中的操作传递参数