Swift 异步URL请求数据任务超时
正在尝试使以下测试正常工作。它从不进入完成块,而是在30秒后超时。这个要求似乎从未提出过,因为我在查尔斯身上看不到Swift 异步URL请求数据任务超时,swift,swift3,nsurlsession,xctest,xctestexpectation,Swift,Swift3,Nsurlsession,Xctest,Xctestexpectation,正在尝试使以下测试正常工作。它从不进入完成块,而是在30秒后超时。这个要求似乎从未提出过,因为我在查尔斯身上看不到 func testAsynchronousURLConnection() { let url = URL(string: "https://jsonplaceholder.typicode.com/posts/1")! let exp = expectation(description: "Async request") var urlRequest =
func testAsynchronousURLConnection() {
let url = URL(string: "https://jsonplaceholder.typicode.com/posts/1")!
let exp = expectation(description: "Async request")
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = "GET"
urlRequest.addValue("application/json", forHTTPHeaderField: "Accept")
let task = URLSession.shared.dataTask(with: urlRequest) { data, response, error in
XCTAssertNotNil(data, "data should not be nil")
XCTAssertNil(error, "error should be nil")
exp.fulfill()
}
task.resume()
waitForExpectations(timeout: 30) { error in
if let error = error {
print("Error: \(error)")
}
}
}
测试失败,出现以下错误:
异步等待失败:超过了30秒的超时时间,未实现预期:“异步请求”
我错在哪里?如果你把查尔斯从等式中剔除,你会看到同样的行为吗?我想知道SSL代理设置中是否有奇怪的东西(例如,等待证书的确认或类似的奇怪事情)。话虽如此,我还是希望它能立即成功或失败。我用Charles来观看这部电影,效果很好……是的,我刚刚关闭Charles,创建了一个新项目。复制并粘贴测试,它在那里工作,但不在我现有的项目中。我完全搞不清楚我现有的项目可能包含哪些内容会阻碍它。如果你把Charles从等式中剔除,你会看到同样的行为吗?我想知道SSL代理设置中是否有奇怪的东西(例如,等待证书的确认或类似的奇怪事情)。话虽如此,我还是希望它能立即成功或失败。我用Charles来观看这部电影,效果很好……是的,我刚刚关闭Charles,创建了一个新项目。复制并粘贴测试,它在那里工作,但不在我现有的项目中。我完全搞不清楚我现有的项目可能包含哪些内容会阻碍它。