使用 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)
}
}
我在我的 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)
}
}