Я могу так или иначе сделать синхронный Запрос HTTP через NSURLSession в Быстро

Я могу так или иначе сделать синхронный Запрос HTTP через NSURLSession в Swift?

Я могу сделать асинхронный запрос с помощью следующего кода:

if let url = NSURL(string: "https://2ch.hk/b/threads.json") {
            let task = NSURLSession.sharedSession().dataTaskWithURL(url) {
                (data, response, error) in

                var jsonError: NSError?
                let jsonDict = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &jsonError) as [String: AnyObject]
                if jsonError != nil {
                    return
                }

                // ...
            }
            task.resume()
        }

Но что относительно синхронного запроса?

Заранее спасибо.

59
задан 6 November 2014 в 19:22

1 ответ

Дублированный ответ от https://<час> stackoverflow.com/a/58392835/246776

, Если основанный на семафоре подход не работает на Вас, попытайтесь опросить базирующийся подход.

var reply = Data()
/// We need to make a session object.
/// This is key to make this work. This won't work with shared session.
let conf = URLSessionConfiguration.ephemeral
let sess = URLSession(configuration: conf)
let task = sess.dataTask(with: u) { data, _, _ in
    reply = data ?? Data()
}
task.resume()
while task.state != .completed {
    Thread.sleep(forTimeInterval: 0.1)
}
FileHandle.standardOutput.write(reply)
0
ответ дан 1 November 2019 в 12:07

Другие вопросы по тегам:

Похожие вопросы: