Alamofire-Antwortobjekt gibt 200 Statuscode zurück, wenn mein Rails-Server 304 zurückgibt

8

Wenn ich eine Anfrage an meinen Rails-Server sende und 304 nicht geändert bekomme, gibt das almofire-Antwortobjekt den Statuscode 200 zurück. Wie kann ich meine Anfrage ändern, damit ich den 304-Statuscode bekomme, den mein Rails-Server zurückgibt? Ich habe Alamofire mit Cocoapoden installiert.

BEARBEITEN

Das ist momentan mein Code (funktioniert nicht):

%Vor%

Dies ist der Code nach der Antwort von kpsharp (funktioniert nicht):

%Vor%

BEARBEITEN 2

Mein Rails-Code zum Caching:

%Vor%

Danke

    
gal 06.05.2016, 16:18
quelle

1 Antwort

1

Dies ist ein bekanntes Problem in Alamofire bereits.

cnoon , ein Alamofire-Mitglied, empfahl dies:

  

Gute Frage ... schon möglich. Sie müssen das URLRequestConvertible in Kombination mit einem NSMutableURLRequest verwenden, um die cachePolicy für diese bestimmte Anforderung zu überschreiben. Schau dir die Dokumentation an und du wirst sehen, was ich meine.

BEARBEITEN: Als Antwort auf Ihren Kommentar werde ich einen kurzen Code bereitstellen, der hoffentlich die Dinge klären wird.

Das Problem ist also, dass Sie die Antwort zwischengespeichert haben. Für die meisten Anwendungsfälle ist die Rückgabe einer 200, wenn Sie tatsächlich eine 304 erhalten haben, in Ordnung - schließlich hat der Server die Anfrage ohne Problem akzeptiert und berichtet nur, dass es keine Änderung gab. Für was auch immer Ihre Bedürfnisse sind, müssen Sie tatsächlich die 304 sehen, die gültig ist, aber wir müssen die zwischengespeicherte Antwort ignorieren, um dies zu tun.

Wenn Sie also Ihre Anfrage erstellen, folgen Sie der Alamofire-Dokumentation , um so etwas zu erstellen :

%Vor%

So würde eine normale Anfrage aussehen. Allerdings müssen wir die cachePolicy für die mutableURLRequest wie folgt überschreiben:

%Vor%

Danach kickt es einfach zu Alamofire, um es abzusenden:

%Vor%     
kpsharp 06.05.2016 16:24
quelle