繁体   English   中英

使用通用可编码API客户端处理非JSON响应

[英]Handle non JSON Response with Generic Codable API client

我有一个API客户端,该客户端使用符合Codable协议的通用API响应,并使用JSONDecoder解码响应,如下所示,如何处理不返回JSON的响应(已创建状态代码201)?

dataRequest.validate().responseJSON { response in

     if let error = response.error {
        completion(.failure(error.localizedDescription))
     } else if let data = response.data {
        do {
           let apiResponse = try JSONDecoder().decode(T.Response.self, from: data)
           completion(.success(apiResponse))
        } catch {
           completion(.failure(error.localizedDescription))
        }
     } else {
        completion(.failure("Something went wrong, please try again later."))
     }
  }

它返回此错误:响应无法序列化,输入数据为nil或零长度

在这种情况下,您可以查看responsestatusCode属性(假设它是HTTPURLResponse ),然后确定是否有要解析的正文。 我将在错误检查后立即将其放置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM