我是 Swift 的新手,我在使用 swift native URLRequest 从 API 中提取一些 JSON 时遇到了问题 - 这是在 Playground 上。我已经测试了 API 端点,它在 Postman 中返回数据很好
这是我的代码:
//: Playground - noun: a place where people can play
import Foundation
import XCPlayground
import PlaygroundSupport
import UIKit
let urlString = "http://example.test/industry"
let session = URLSession.shared
let url = URL(string: urlString)!
var request = URLRequest(url: url)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: Error?) in
if let responseData = response
{
do{
/*let json = try JSONSerialization.jsonObject(with: responseData, options: [])
print(json)*/
}catch{
print("Could not serialize")
}
}
})
PlaygroundPage.current.needsIndefiniteExecution = true
我在这里做错了什么?我需要发送 header 以从我的端点请求 JSON。
最佳答案
您必须在 dataTask{...}
之后添加 .resume()
。
结果,它看起来像这样:
session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: Error?) in
if let data = data{
do{
let json = try JSONSerialization.jsonObject(with: data)
print(json)
}
catch {
print(error)
}
}
}).resume
关于ios - 在 Swift 中带有 header 的 URLRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48447377/