iOS: RestKit loadObject & send params

8

, das loadObjectAtResourcePath für die GET-Methode verwendet, enthält keine Parameter für die Anforderungen.

zum Beispiel, wenn ich sende:

%Vor%

Die letzte URL-Anfrage enthält nicht den Teil "? param1 = val" - warum?

    
Alon Amir 22.02.2012, 21:07
quelle

1 Antwort

15

Monate später aktualisieren

Die wirkliche Antwort ist, dass loader.params ein HTTP BODY erzeugt, also funktioniert es für POST, PUT, DELETE etc, aber nicht für GET , wo die Parameter an die URL angehängt werden.

Daher funktioniert die folgende Antwort immer noch, wenn das gleiche Problem für GET auftritt. Wenn Sie jedoch GET -Anforderungen senden, werden meistens Methoden verwendet, die die Parameter an die Abfragezeichenfolge anhängen.

Um die Unterschiede zwischen den beiden zusammenzufassen.

Senden von Parametern im HTTP-Body (d. h. POST, UPDATE, DELETE )

%Vor%

Caveat Emptor (für oben)

Durch das Setzen von Parametern im Block wird jedes Mapping zerstört, das Sie möglicherweise in yourObject festgelegt haben, was den Zweck der Objektzuordnung vereitelt. Es gibt hier einen Fix von Sebastian loader.params - Extra params , wenn du das wirklich willst Verwenden Sie diese Methode, um zusätzliche Parameter an Ihren Post anzuhängen, die sich nicht im Objekt befinden.

Senden von Parametern als Abfragezeichenfolge (d. h. GET )

%Vor%

Der Rest der Antwort dient nur als Referenz, ich bin ein Schatzbildner.

Alte Antwort

Ich benutze RestKit für mein Projekt und sehe mir das gleiche Problem an.

Ich denke, RKParams wird hauptsächlich für POST Anfragen verwendet. Ich kann Ihren Code nicht vollständig entschlüsseln, weil 1) ich die Deklaration von loader nicht weiß? 2) RKParams soll nicht mit Object Manager verwendet werden?

Ich habe das getan.

Loader-Methode im App-Delegierten

%Vor%

Delegierter

%Vor%

Ausgabe : RK Request description: <RKRequest: 0x7993db0> und rails log say {"limit"=>"30"} .

Von der automatischen Vervollständigung in Xcode können Sie sehen, dass die get -Anfrage nicht einmal RKParams verwendet hat. Nur ein NSDict . Die POST-Anfragen verwenden es.

Mein Ziel ist es, eine Abfrage-Zeichenfolge, d. h. ?location=singapore&etcetc , an meine API-Methoden in Rails anzuhängen. Dazu kommt RK mit einem NSString Addon namens appendQueryParams RK docs link , mit dem Sie Abfrageparameter anhängen können.

Wenn Ihr Ziel POST images usw. ist, können Sie dem obigen Gedankengang von RKClient folgen.

Aktualisierung:

Wenn Sie nur Parameter an den Objektmanager anfügen möchten

%Vor%

Dies ist veraltet und als veraltet gekennzeichnet.

%Vor%

Verwenden Sie stattdessen:

%Vor%

Rails-Protokoll : {"location"=>"latitude,longitude", "limit"=>"20"}

Ich hoffe auf meine Antwort Ich habe keine falschen Aussagen gemacht.

Siehe diese Frage RestKit GET-Abfrageparameter .

    
Damon Aw 24.02.2012, 04:27
quelle