【发布时间】:2021-11-01 07:05:49
【问题描述】:
我正在尝试从 API 检索一些数据,但出现错误:“给定的数据不是有效的 JSON”,状态代码:401
我认为这是一个身份验证问题。如何设置身份验证凭据以发出 GET 请求?
这是从 JSON 中检索数据的代码。
func loadData()
{
guard let url = URL(string: getUrl) else { return }
URLSession.shared.dataTask(with: url) { data, res, err in
do {
if let data = data {
let result = try JSONDecoder().decode([ItemsModel].self, from: data)
DispatchQueue.main.async {
self.items = result
}
} else {
print(" No Data ")
}
} catch( let error)
{
print(res)
print(String(describing: error))
}
}.resume()
}
这是视图的代码:
struct GetView: View {
@ObservedObject var viewModel = ViewModel()
var body: some View {
NavigationView {
VStack {
List(viewModel.items, id: \.id) { item in
Text(item.year)
}
} .onAppear(perform: {
viewModel.loadData()
})
.navigationTitle("Data")
}
}
}
【问题讨论】:
-
在顶部的
if let data = data中打印String(data: data, encoding: .utf8)!。结果是什么?任何可读的JSON?将任何内容粘贴到问题中。 -
"如何设置身份验证凭据以发出 GET 请求?"你在说什么类型的授权?承载授权?基本授权?
-
你好@George,这是我通过打印数据得到的结果“您没有此范围的访问权限”
-
@ElTomato 基本授权