Wie kann ich eine URL mit demselben Schlüssel mehrmals erstellen?
-
26-12-2019 - |
Frage
Ich baue eine iOS-App, die macht GET
Anfragen an eine URL.Für alle Anfragen baue ich die URL aus einer Basis-URL auf und füge dann Parameter hinzu NSDictionary
Schlüssel-Wert-Paare.
Ich benutze auch AFNetworking 2.0
um die Anfrage zu stellen – es erstellt auch die URL mit den bereitgestellten NSDictionary-Schlüsseln.
Ich bin jetzt auf ein Problem gestoßen, bei dem ein Webdienst, den ich verwenden muss, mehrere gleiche Schlüssel mit unterschiedlichen Werten erfordert.Diese Funktionalität ist mit nicht möglich NSDictionary
Das bedeutet, dass ich den Webdienst nicht erfolgreich ausführen kann.
Hier ist ein Beispiel dafür, wie die endgültige URL aussehen muss:
http://demo.domain.net/services/.....&IncludedUserIds=12345&IncludedUserIds=2345
Der kursive Teil der obigen URL ist das, was ich mit AFNetworking und NSDictionary zu erstellen versuche.Ich vermute, dass ich etwas verwenden muss, das etwas fortgeschrittener ist als NSDictionary, um das hinbekommen zu können.
Hat jemand irgendwelche Ideen?
Bearbeiten
Ich habe eine halbe Lösung gefunden, wenn ich meine NSDictionary-Parameter mit NSSet wie folgt eingestellt habe:
[self.parameters setObject:[NSSet setWithObjects:@"12345",@"2345", nil] forKey:@"IncludedUserIds"];
Das funktioniert so, wie ich es brauche.Allerdings habe ich eine Folgefrage:
Die Werte müssen dynamisch zu NSSet hinzugefügt werden – wie erstelle ich ein NSSet, das zur Laufzeit zusätzliche Werte akzeptieren kann?
Lösung
Ich habe es geschafft, dieses Problem zu lösen:
Ich habe gerade Objekte in meinem NSDictionaray erstellt, etwa so:
[self.myDictionary setObject:[NSSet setWithArray:self.myArray] forKey:@"myKeyNeeded];
Das Array enthält NSString-Objekte und das scheint perfekt zu funktionieren.Ich habe stattdessen Array verwendet NSMutableSet
Aufgrund der Notwendigkeit, Objekte leicht genug aus dem NSDictionary zu entfernen.
Andere Tipps
Nun ja, das kannst du seitdem &IncludedUserIds=12345&IncludedUserIds=2345
sollte das gleiche sein wie &IncludedUserIds=12345,2345
Also nur ein Array, ein Wert für den Schlüssel im Parameterwörterbuch.