blob: a297165db3585b8119fe8b939867c9c556075782 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import Foundation
struct HTTPHeadersService {
static func fetch(domain: String) async throws -> [HTTPHeader] {
let url = URL(string: "https://\(domain)")!
var request = URLRequest(url: url, timeoutInterval: 10)
request.httpMethod = "HEAD"
let (_, response) = try await URLSession.shared.data(for: request)
guard let httpResponse = response as? HTTPURLResponse else {
throw URLError(.badServerResponse)
}
return httpResponse.allHeaderFields.compactMap { key, value in
guard let name = key as? String,
let val = value as? String else { return nil }
return HTTPHeader(name: name, value: val)
}
.sorted { $0.name.lowercased() < $1.name.lowercased() }
}
}
|