You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何打印HTTP响应到控制台?JSON序列化报错排查

在Swift中打印HTTP响应与排查JSON序列化错误

一、打印完整HTTP响应到控制台

要把HTTP响应的详细信息输出到控制台,你可以在获取到HTTPURLResponse后直接打印状态码、响应头、请求URL等关键信息:

let task = URLSession.shared.dataTask(with: request) { urlData, response, reponseError in
    if let res = response as? HTTPURLResponse {
        // 打印响应状态码
        print("响应状态码: \(res.statusCode)")
        // 打印所有响应头信息
        print("响应头: \(res.allHeaderFields)")
        // 打印响应对应的URL
        print("响应URL: \(res.url?.absoluteString ?? "无有效URL")")
        
        if res.statusCode == 200 {
            // 后续业务逻辑...
        }
    }
}
task.resume()

二、查看原始响应数据排查JSON序列化错误

当JSONSerialization抛出无效JSON错误时,最直接的排查方式是先把二进制响应数据转成字符串打印,确认返回的内容是否符合预期(可能是格式错误的JSON、HTML错误页面或其他非JSON内容):

let task = URLSession.shared.dataTask(with: request) { urlData, response, reponseError in
    if let res = response as? HTTPURLResponse {
        if res.statusCode == 200 {
            guard let data = urlData else {
                print("无响应数据")
                return
            }
            
            // 尝试用UTF-8解码原始数据并打印
            if let rawContent = String(data: data, encoding: .utf8) {
                print("原始响应内容:\n\(rawContent)")
            } else {
                // UTF-8解码失败时,尝试ISO-Latin-1编码
                if let rawContent = String(data: data, encoding: .isoLatin1) {
                    print("原始响应内容(ISO-Latin-1解码):\n\(rawContent)")
                } else {
                    print("无法解码响应数据")
                }
            }
            
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? NSDictionary
                // 后续JSON处理逻辑...
            } catch {
                // 打印JSON序列化的具体错误
                print("JSON序列化失败: \(error.localizedDescription)")
            }
        }
    }
}
task.resume()

关键提示:

  • 大部分接口用UTF-8编码,若解码失败可根据实际场景尝试其他编码格式
  • 如果打印出HTML内容,说明接口可能返回了错误页面而非预期JSON,需检查请求参数或接口状态

内容的提问来源于stack exchange,提问作者Kendall Crouch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 07:38:26