summaryrefslogtreecommitdiff
path: root/DomainDig/HTTPHeadersService.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-03-18 11:59:38 -0500
committerChristian Cleberg <[email protected]>2026-03-18 11:59:38 -0500
commit376e7b55b4a0c4f54faa0c2828dea4fd17dff288 (patch)
tree540d11ad423f14975553f2490617e05aea61ae2c /DomainDig/HTTPHeadersService.swift
parente11b7d29a6aa9e52f63fcb35ee7ed9127850fffe (diff)
downloaddomain-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.swift22
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() }
+ }
+}