使用AFNetworking解析布尔响应

问题描述 投票:0回答:2

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

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

enter image description here

对邮递员的回应

enter image description here

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

if let isSuccess = response as? Bool {
     print(isSuccess)
}
ios swift afnetworking
2个回答
1
投票

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

所以我不得不使用AFHTTPResponseSerializer作为Data返回响应。然后我将这个Data转换为String以检索“真实”或“假”文本。

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

0
投票

看起来你的response对象是Any?类型。也许尝试以安全的方式将其作为布尔值进行投射:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.