krz/domain-dig

an ios app for DNS & SSL analysis

clone: git clone https://gitbay.org/krz/domain-dig.git

v1.4.0: DomainDig/HTTPHeadersService.swift · raw

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