数据任务未执行,请求为空
datatask not executed, request is null
import Foundation
let headers = [
"x-rapidapi-key": "myKey",
"x-rapidapi-host": "movie-database-imdb-alternative.p.rapidapi.com"
]
let urlR = URL(string: "https://movie-database-imdb-alternative.p.rapidapi.com/?i=tt4154796&r=json")
var request = URLRequest(url: urlR!)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request) { data, response, error in
print(data ?? "data")
print(response ?? "response")
print(error ?? "error")
}
dataTask.resume()
datatask 中的代码未执行,即使我使用调试器和断点进行检查,它也会被跳过。有人知道为什么吗?
您的代码没有任何问题,并且有一个简单的方法可以证明这一点:单元测试!
import XCTest
class DataTaskTests: XCTestCase {
var dataTask: URLSessionTask!
func testDataTask() throws {
let headers = [
"x-rapidapi-key": "myKey",
"x-rapidapi-host": "movie-database-imdb-alternative.p.rapidapi.com"
]
let urlR = URL(string: "https://movie-database-imdb-alternative.p.rapidapi.com/?i=tt4154796&r=json")
var request = URLRequest(url: urlR!)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let expectation = expectation(description: "testDataTask")
dataTask = session.dataTask(with: request) { data, response, error in
expectation.fulfill()
}
dataTask.resume()
wait(for: [expectation], timeout: 30.0)
}
}
说:
The code inside datatask is not executed
让我觉得你可能在 playground
中尝试这段代码
import Foundation
let headers = [
"x-rapidapi-key": "myKey",
"x-rapidapi-host": "movie-database-imdb-alternative.p.rapidapi.com"
]
let urlR = URL(string: "https://movie-database-imdb-alternative.p.rapidapi.com/?i=tt4154796&r=json")
var request = URLRequest(url: urlR!)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let dataTask = session.dataTask(with: request) { data, response, error in
print(data ?? "data")
print(response ?? "response")
print(error ?? "error")
}
dataTask.resume()
datatask 中的代码未执行,即使我使用调试器和断点进行检查,它也会被跳过。有人知道为什么吗?
您的代码没有任何问题,并且有一个简单的方法可以证明这一点:单元测试!
import XCTest
class DataTaskTests: XCTestCase {
var dataTask: URLSessionTask!
func testDataTask() throws {
let headers = [
"x-rapidapi-key": "myKey",
"x-rapidapi-host": "movie-database-imdb-alternative.p.rapidapi.com"
]
let urlR = URL(string: "https://movie-database-imdb-alternative.p.rapidapi.com/?i=tt4154796&r=json")
var request = URLRequest(url: urlR!)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
let session = URLSession.shared
let expectation = expectation(description: "testDataTask")
dataTask = session.dataTask(with: request) { data, response, error in
expectation.fulfill()
}
dataTask.resume()
wait(for: [expectation], timeout: 30.0)
}
}
说:
The code inside datatask is not executed
让我觉得你可能在 playground
中尝试这段代码