使用 AFNetworking 解析布尔响应

Parse Boolean Response using AFNetworking

我在我的 Swift 应用程序中使用 AFNetworking。我使用 AFHTTPRequestSerializer 发出 POST 请求并使用 AFHTTPResponseSerializer 接收响应。 HTTP 状态代码是 200,我得到了成功的响应。

但是,我无法解析布尔响应。在 Postman 上,响应以布尔值(真或假)形式出现,但我无法在我的代码中识别响应对象类型。请参阅显示响应对象的附图。

邮递员回复

尝试如下解析但 IF 条件不满足。

if let isSuccess = response as? Bool {
     print(isSuccess)
}

您的 response 对象似乎是 Any? 类型。也许尝试以安全的方式将其转换为布尔值:

if let response = response as? Bool {
    // Do something with the response
}

在 if 语句中放置一个断点,以便更容易地查看是否满足条件。

服务器将 'true' 或 'false' 作为 JSON 发送,这实际上是无效的 JSON。此后,如果我尝试使用 AFJSONResponseSerializer,它会出错,因为返回的 JSON 格式不正确。

所以我不得不使用 AFHTTPResponseSerializer 那个 returns 响应作为 Data。然后我将此 Data 转换为 String 以检索 'true' 或 'false' 文本。

if let isSuccessData = response as? Data {
    if let isSuccessText = String(data: isSuccessData, encoding: .utf8) {
        print(isSuccessText)
    }
}