-1
我想做一个网络爬行,目前我正在阅读12000个URL的txt文件,我想在这个过程中使用并发,但请求不起作用。如何在swift中同步异步HTTP请求3,没有AlamoFire
typealias escHandler = (URLResponse?, Data?) -> Void
func getRequest(url : URL, _ handler : @escaping escHandler){
let session = URLSession(
configuration: .default,
delegate: nil,
delegateQueue: nil)
var request = URLRequest(url:url)
request.httpMethod = "GET"
let task = session.dataTask(with: request){ (data,response,error) in
handler(response,data)
}
task.resume()
}
for sUrl in textFile.components(separatedBy: "\n"){
let url = URL(string: sUrl)!
getRequest(url: url){ response,data in
print("RESPONSE REACHED")
}
}
谢谢雅各布,你的建议非常适合这个问题。 – eduardo
@eduardo - 这并不是那么简单,因为您要添加到队列中的这些任务本身就是异步的。所以你必须创建异步操作。请参阅http://stackoverflow.com/a/40560463/1271826。 – Rob