使用AFNetworking解析布尔响应

时间:2019-04-21 12:56:29

标签: ios swift afnetworking

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

但是,我无法解析布尔响应。在Postman上,响应以布尔值(true或false)表示,但是我无法在代码中识别响应对象类型。请参阅所附的显示响应对象的图像。

enter image description here

对邮递员的答复

enter image description here

尝试按以下方式进行解析,但IF条件不满足。

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

2 个答案:

答案 0 :(得分:1)

服务器正在将“ true”或“ false”作为JSON发送,这实际上是无效的JSON。从今以后,如果我尝试使用AFJSONResponseSerializer,它将返回错误,因为返回的JSON格式不正确。

所以我不得不使用AFHTTPResponseSerializer来返回响应,返回为Data。然后,我将此Data转换为String,以获取“ true”或“ false”文本。

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

答案 1 :(得分:0)

看起来您的response对象的类型为Any?。也许可以尝试以安全的方式将其强制转换为布尔值:

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

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