У меня есть URL, который я при вызове в веб-браузере перенаправляю мне 2 раза, и в заголовке ответа второго перенаправления он отправляет информацию, которую я хочу извлечь.
Таким образом, чтобы автоматическиИзвлекая эту информацию быстро, я написал этот небольшой фрагмент кода, который делает HTTP-запрос, а затем печатает заголовки ответа:
printv(text: "Loading JSID Location")
req = URLRequest.init(url: JSIDLocation!)
var task : URLSessionDataTask
task = URLSession.shared.dataTask(with: req) {(data, response, error) in
if let res = response as? HTTPURLResponse {
res.allHeaderFields.forEach { (arg0) in
let (key, value) = arg0
self.printv(text: "\(key): \(value)")
}
}
self.printv(text: String.init(data: data!, encoding: String.Encoding.utf8)!)
}
task.resume()
(printv
- это функция, которая форматирует строку и печатает ее вметка)
Поэтому, когда я запускаю это, я ожидаю, что он напечатает заголовки ответа и тело последнего перенаправления, но на самом деле происходит то, что я просто печатаю заголовки ответа и тело исходного URL.Поскольку они не содержат информацию, которую я ищу, это не поможет мне.Я уже погуглил свою проблему и обнаружил, что перенаправления HTTP по умолчанию активируются в URLSessions
и что вам придется связываться с URLSessionDelegates
, чтобы их деактивировать, но это определенно не то, что я сделал.Спасибо за вашу помощь!