我在Swift应用程序中使用了 AFNetworking 。我使用POST
发出AFHTTPRequestSerializer
请求,并使用AFHTTPResponseSerializer
接收响应。 HTTP状态代码为200,我得到成功的响应。
但是,我无法解析布尔响应。在Postman上,响应以布尔值(true或false)表示,但是我无法在代码中识别响应对象类型。请参阅所附的显示响应对象的图像。
对邮递员的答复
尝试按以下方式进行解析,但IF
条件不满足。
if let isSuccess = response as? Bool {
print(isSuccess)
}
答案 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语句中放置一个断点,以便于查看是否满足条件。