-1
ウェブをクロールしたい、現在12000のURLを持つtxtファイルを読んでいるが、このプロセスでは並行性を使用したいがリクエストは機能しない。AlamoFireなしで同時の非同期HTTPリクエストを作成する方法
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")
}
}
ありがとう、Jacob、あなたの提案はこの問題に完全に合っています。 – eduardo
@eduardo - キューに追加するタスクは、それ自体が非同期であるため、それほど単純ではありません。したがって、非同期操作を作成する必要があります。 http://stackoverflow.com/a/40560463/1271826を参照してください。 – Rob