diff options
| author | Christian Cleberg <[email protected]> | 2026-03-18 11:59:38 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-03-18 11:59:38 -0500 |
| commit | 376e7b55b4a0c4f54faa0c2828dea4fd17dff288 (patch) | |
| tree | 540d11ad423f14975553f2490617e05aea61ae2c /DomainDig/HTTPHeadersService.swift | |
| parent | e11b7d29a6aa9e52f63fcb35ee7ed9127850fffe (diff) | |
| download | domain-dig-376e7b55b4a0c4f54faa0c2828dea4fd17dff288.tar.gz domain-dig-376e7b55b4a0c4f54faa0c2828dea4fd17dff288.tar.bz2 domain-dig-376e7b55b4a0c4f54faa0c2828dea4fd17dff288.zip | |
realigning commits
Diffstat (limited to 'DomainDig/HTTPHeadersService.swift')
| -rw-r--r-- | DomainDig/HTTPHeadersService.swift | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/DomainDig/HTTPHeadersService.swift b/DomainDig/HTTPHeadersService.swift new file mode 100644 index 0000000..a297165 --- /dev/null +++ b/DomainDig/HTTPHeadersService.swift @@ -0,0 +1,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() } + } +} |
