在命令行工具上使用 Swift URLSession 示例代码
Use Swift URLSession example code on command line tool
我正在尝试找出最简单 的方法来从命令行在Swift 4 中发出HTTP 请求。我从 URLSession programming guide 复制了这段代码,并添加了几个打印语句。我不明白为什么 .dataTask
没有执行。
print("Testing URLSession")
let sessionWithoutADelegate = URLSession(configuration: URLSessionConfiguration.default)
if let url = URL(string: "https://www.example.com/") {
print("Encoded url \(url)")
(sessionWithoutADelegate.dataTask(with: url) { (data, response, error) in
print("Executing dataTask")
if let error = error {
print("Error: \(error)")
} else if let response = response,
let data = data,
let string = String(data: data, encoding: .utf8) {
print("Response: \(response)")
print("DATA:\n\(string)\nEND DATA\n")
}
}).resume()
}
objective 是从 REST api 检索数据,但我什至不能发出一个简单的 GET
请求来正常工作...
我终于想出了如何使用 CFRunLoop
:
let runLoop = CFRunLoopGetCurrent()
let task = session.dataTask(with: request) { (data, response, error) in
print("Retrieved data")
CFRunLoopStop(runLoop)
}
task.resume()
CFRunLoopRun()
print("done")
我正在尝试找出最简单 的方法来从命令行在Swift 4 中发出HTTP 请求。我从 URLSession programming guide 复制了这段代码,并添加了几个打印语句。我不明白为什么 .dataTask
没有执行。
print("Testing URLSession")
let sessionWithoutADelegate = URLSession(configuration: URLSessionConfiguration.default)
if let url = URL(string: "https://www.example.com/") {
print("Encoded url \(url)")
(sessionWithoutADelegate.dataTask(with: url) { (data, response, error) in
print("Executing dataTask")
if let error = error {
print("Error: \(error)")
} else if let response = response,
let data = data,
let string = String(data: data, encoding: .utf8) {
print("Response: \(response)")
print("DATA:\n\(string)\nEND DATA\n")
}
}).resume()
}
objective 是从 REST api 检索数据,但我什至不能发出一个简单的 GET
请求来正常工作...
我终于想出了如何使用 CFRunLoop
:
let runLoop = CFRunLoopGetCurrent()
let task = session.dataTask(with: request) { (data, response, error) in
print("Retrieved data")
CFRunLoopStop(runLoop)
}
task.resume()
CFRunLoopRun()
print("done")