🔥

Alamofireで空のレスポンスを取得する

2022/03/07に公開

Alamofireで空のレスポンスを取得したいときは、Empty型もしくはEmptyResponseプロトコルに適合した型を指定します。

AF.request("https://httpbin.org/status/204").responseDecodable(of: Empty.self) {
  debugPrint($0)
}
struct NoContent: Decodable, EmptyResponse {
  static func emptyValue() -> NoContent {
    return NoContent()
  }
}

AF.request("https://httpbin.org/status/204").responseDecodable(of: NoContent.self) {
  debugPrint($0)
}

ただし、デフォルトで空のレスポンスが許容されるステータスコードは204205だけなので、それ以外にも対応したい場合はemptyResponseCodesも併せて指定する必要があります。

AF.request("https://httpbin.org/status/201").responseDecodable(of: Empty.self, emptyResponseCodes: [201, 204, 205]) {
  debugPrint($0)
}

以上です。

https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response-handling

Discussion