import Foundation

/// HTTP header 读取兼容工具。
///
/// 对齐 OC 版 `TQHTTPHeaderCompat`：
/// 从 `HTTPURLResponse.allHeaderFields` 中按大小写不敏感方式查找指定 header 字段。
/// `value(forHTTPHeaderField:)` 是 iOS 13+ API，此方法在所有版本（iOS 11+）统一可用。
enum HTTPHeaderCompat {
    /// 从 HTTP 响应中按大小写不敏感方式获取指定 header 字段值。
    /// - Parameters:
    ///   - field: header 字段名（如 `"Content-Disposition"` / `"Cache-Control"`）
    ///   - response: HTTP 响应（非 `HTTPURLResponse` 时返回 nil）
    /// - Returns: 匹配到的值；未找到时返回 nil
    static func value(for field: String, in response: URLResponse?) -> String? {
        guard let http = response as? HTTPURLResponse, !field.isEmpty else { return nil }
        if #available(iOS 13, *) {
            return http.value(forHTTPHeaderField: field)
        } else {
            let lowerField = field.lowercased()
            for (key, value) in http.allHeaderFields {
                if let keyStr = key as? String, keyStr.lowercased() == lowerField {
                    return value as? String
                }
            }
            return nil
        }
    }
}
