-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