转换卷曲的URLRequest
问题描述:
我试图转换下面卷曲请求扬鞭让我给URLRequest:转换卷曲的URLRequest
curl -X GET --header 'Accept: application/json'
--header 'Authorization: key ttn-account-v2.<app-key>'
'https://<app-id>.data.thethingsnetwork.org/api/v2/query'
URL和接头是否设置正确。我仍然得到回应:401 - 未经授权。
let key = "ttn-account-v2.<app-key>"
let url = URL(string: "https://<app-id>.data.thethingsnetwork.org/api/v2/query")
var request = URLRequest(url: url!)
request.httpMethod = "GET"
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue("key \(key)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: url!) { data, response, error in
guard error == nil else {
print(error!)
return
}
guard let data = data else {
print("Data is empty")
return
}
let json = try! JSONSerialization.jsonObject(with: data, options: [])
print(json)
}
task.resume()
我错过了什么吗?
答
到底哪里出问题了就是你打造一个完美的请求,但后来通过做dataTask
仅通过网址,而不是请求跳过它。这样HTTPHeaders
不会与请求一起发送,因此它没有被授权。 只要改变任务创建行这样的:
let task = URLSession.shared.dataTask(with: req) { data, response, error in
...
}
+0
完蛋了,非常感谢你! – ChrisTheGreat
你确定键头是正确的?检查,如果它不将其作为可选(...) –