Alamofire: Statuscode: 404, aber response.result = ERFOLG

Erstellt am 27. Okt. 2015  ·  3Kommentare  ·  Quelle: Alamofire/Alamofire

1

response serializer support

Hilfreichster Kommentar

Sie validieren den Antwortstatuscode nicht, daher ist es möglich, dass ein 404-Fehler Ihnen einen .Success -Fall zurückgibt. Alles, was der responseData Serializer tut, ist zu validieren, dass kein Fehler aufgetreten ist (was nicht passieren wird, da Sie den Antwortstatuscode nicht validieren) oder dass die Daten vorhanden sind.

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)
    }
}

In Ihrem Fall erhalten Sie einen 404, der keinen Fehler auslöst, und der Server gibt Daten zurück. Daher ist Ihr responseData Serializer erfolgreich. Wenn Sie erwarten, dass ein 404-Fehler immer einen Fehler auslöst, sollten Sie zusätzlich die Methode .validate(statusCode: [200]) vor dem Serializer responseData verwenden. Weitere Informationen finden Sie im Validierungsabschnitt der README.

Zukünftig eignen sich solche Fragen besser für Stack Overflow mit einem alamofire -Tag. Wir verwenden GitHub für Fehler und Funktionsanfragen. 🍻.


Aus unseren Beitragsrichtlinien

Fragen stellen

Wir verwenden GitHub nicht als Support-Forum. Fragen zur Verwendung, die nicht spezifisch für das Projekt selbst sind, stellen Sie bitte stattdessen auf Stack Overflow . Auf diese Weise ist es wahrscheinlicher, dass Sie Ihr Problem schnell lösen, und Sie ermöglichen es allen anderen, die die gleiche Frage haben, die Antwort zu finden. Dadurch können sich Betreuer auch darauf konzentrieren, das Projekt für andere zu verbessern.

Alle 3 Kommentare

Sie validieren den Antwortstatuscode nicht, daher ist es möglich, dass ein 404-Fehler Ihnen einen .Success -Fall zurückgibt. Alles, was der responseData Serializer tut, ist zu validieren, dass kein Fehler aufgetreten ist (was nicht passieren wird, da Sie den Antwortstatuscode nicht validieren) oder dass die Daten vorhanden sind.

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)
    }
}

In Ihrem Fall erhalten Sie einen 404, der keinen Fehler auslöst, und der Server gibt Daten zurück. Daher ist Ihr responseData Serializer erfolgreich. Wenn Sie erwarten, dass ein 404-Fehler immer einen Fehler auslöst, sollten Sie zusätzlich die Methode .validate(statusCode: [200]) vor dem Serializer responseData verwenden. Weitere Informationen finden Sie im Validierungsabschnitt der README.

Zukünftig eignen sich solche Fragen besser für Stack Overflow mit einem alamofire -Tag. Wir verwenden GitHub für Fehler und Funktionsanfragen. 🍻.


Aus unseren Beitragsrichtlinien

Fragen stellen

Wir verwenden GitHub nicht als Support-Forum. Fragen zur Verwendung, die nicht spezifisch für das Projekt selbst sind, stellen Sie bitte stattdessen auf Stack Overflow . Auf diese Weise ist es wahrscheinlicher, dass Sie Ihr Problem schnell lösen, und Sie ermöglichen es allen anderen, die die gleiche Frage haben, die Antwort zu finden. Dadurch können sich Betreuer auch darauf konzentrieren, das Projekt für andere zu verbessern.

Ich schätze wirklich

Ich kämpfe mit diesem Problem ... Vielen Dank.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

filippovdev picture filippovdev  ·  3Kommentare

Footjy picture Footjy  ·  3Kommentare

matthijsotterloo picture matthijsotterloo  ·  3Kommentare

shivang2902 picture shivang2902  ·  3Kommentare

solomon23 picture solomon23  ·  3Kommentare