Alamofire: 状态码:404,但 response.result = SUCCESS

创建于 2015-10-27  ·  3评论  ·  资料来源: Alamofire/Alamofire

1

response serializer support

最有用的评论

您没有验证响应状态代码,因此 404 可能会返回.Success案例。 responseData序列化程序所做的只是验证没有错误(因为您没有验证响应状态代码,所以不会出现错误)或数据存在。

public static func dataResponseSerializer() -> ResponseSerializer<NSData, NSError> {
    return ResponseSerializer { _, _, data, error in
        guard error == nil else { return .Failure(error!) }

        guard let validData = data where validData.length > 0 else {
            let failureReason = "Data could not be serialized. Input data was nil or zero length."
            let error = Error.errorWithCode(.DataSerializationFailed, failureReason: failureReason)
            return .Failure(error)
        }

        return .Success(validData)
    }
}

在您的情况下,您收到的 404 没有引发错误,并且服务器正在返回数据。 因此,您的responseData序列化程序成功。 如果您希望 404 总是抛出错误,您应该在responseData序列化程序之前另外使用.validate(statusCode: [200])方法。 README 的验证部分中的更多信息。

将来,此类问题更适合带有alamofire标签的 Stack Overflow。 我们使用 GitHub 来处理错误和功能请求。 🍻


来自我们的贡献指南

问问题

我们不使用 GitHub 作为支持论坛。 对于任何不特定于项目本身的使用问题,请改为在Stack Overflow上提问。 通过这样做,您将更有可能快速解决您的问题,并且您将允许其他有相同问题的人找到答案。 这也使维护人员可以专注于为他人改进项目。

所有3条评论

您没有验证响应状态代码,因此 404 可能会返回.Success案例。 responseData序列化程序所做的只是验证没有错误(因为您没有验证响应状态代码,所以不会出现错误)或数据存在。

public static func dataResponseSerializer() -> ResponseSerializer<NSData, NSError> {
    return ResponseSerializer { _, _, data, error in
        guard error == nil else { return .Failure(error!) }

        guard let validData = data where validData.length > 0 else {
            let failureReason = "Data could not be serialized. Input data was nil or zero length."
            let error = Error.errorWithCode(.DataSerializationFailed, failureReason: failureReason)
            return .Failure(error)
        }

        return .Success(validData)
    }
}

在您的情况下,您收到的 404 没有引发错误,并且服务器正在返回数据。 因此,您的responseData序列化程序成功。 如果您希望 404 总是抛出错误,您应该在responseData序列化程序之前另外使用.validate(statusCode: [200])方法。 README 的验证部分中的更多信息。

将来,此类问题更适合带有alamofire标签的 Stack Overflow。 我们使用 GitHub 来处理错误和功能请求。 🍻


来自我们的贡献指南

问问题

我们不使用 GitHub 作为支持论坛。 对于任何不特定于项目本身的使用问题,请改为在Stack Overflow上提问。 通过这样做,您将更有可能快速解决您的问题,并且您将允许其他有相同问题的人找到答案。 这也使维护人员可以专注于为他人改进项目。

我真的很感激

我正在努力解决这个问题......非常感谢你。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Footjy picture Footjy  ·  3评论

matthijsotterloo picture matthijsotterloo  ·  3评论

solomon23 picture solomon23  ·  3评论

shivang2902 picture shivang2902  ·  3评论

simonliotier picture simonliotier  ·  3评论