如何使用 codable 打印 alamofire 响应的结果

How to print result from alamofire response using codable

codable 的新手,我尝试为带有 codable 的 alamofire 创建一个 class,并尝试发出 api 请求。我遇到了一些 Swift.DecodingError.typeMismatch 错误,由于我的模型 class,我弄明白了。现在我需要的是在解码之前在 JSON(String) 甲酸盐中打印 alamofire 响应,以便我可以识别类型不匹配

static func performRequest<T:Decodable>(route:APIRouter, decoder: JSONDecoder = JSONDecoder(), completion:@escaping (Result<T,Error>)->Void) -> DataRequest {

    return AF.request(route)
        .responseDecodable (decoder: decoder){ (response: DataResponse<T>) in
            print(response.result)
            completion(response.result)
    }
}

我想要一些代码来打印 alamofire 的实际结果

您可以通过从 DataResponse:

抓取它来在 responseDecodable 闭包中打印原始 Data
print(response.data.map { String(decoding: [=10=], as: UTF8.self) } ?? "No data.")

您也可以添加一个单独的序列化程序来查看 String:

.responseDecodable { }
.responseString { }

如果您只想查看调试响应,可以debugPrint闭包中的响应。这会将请求和响应正文数据打印为 Strings.

.responseDecodable(of: T.self) { response in
    debugPrint(response)
}