Alamofire: Obtenir les paramètres de requête et de tableau

Créé le 3 févr. 2015  ·  3Commentaires  ·  Source: Alamofire/Alamofire

Il ne semble pas que les requêtes GET traduisent correctement les paramètres de tableau.

    let params: [String: AnyObject] = ["q": ["one", "two"], "target": "en"]
    Alamofire.request(.GET, "https://www.googleapis.com/language/translate/v2", parameters: params)

génère l'url :

q%5B%5D=un&q%5B%5D=deux&target=fr

Je pense qu'il essaie d'ajouter [] pour le cas POST. Mais dans le cas GET, il devrait être q=un&q=deux

Tous les 3 commentaires

C'est un comportement intentionnel. Selon le README.md,

Puisqu'il n'y a pas de spécification publiée sur la façon d'encoder les types de collection, la convention d'ajout de [] à la clé pour les valeurs de tableau (foo[]=1&foo[]=2) et d'ajout de la clé entourée de crochets pour les valeurs de dictionnaire imbriquées ( foo[bar]=baz) [est utilisé].

Au lieu d'utiliser GET, vous devriez envisager d'utiliser POST ou PUT et de transmettre des valeurs via JSON, XML ou un autre format bien défini. Cela pourrait évidemment nécessiter des changements côté serveur.

Si le côté serveur est hors de votre contrôle, vous devriez envisager d'encoder manuellement ces paramètres à la place.

Oui, c'est le point de terminaison google api, donc c'est hors de mon contrôle. L'API Google n'aime pas ce format. Je peux le construire manuellement, mais j'ai pensé que je le classerais pour que vous soyez au courant.

@JRG-Developer a raison - il s'agit d'un comportement intentionnel. Utilisez l'encodage des paramètres personnalisés si vous avez besoin d'autre chose que les options fournies.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

simonliotier picture simonliotier  ·  3Commentaires

yamifr07 picture yamifr07  ·  3Commentaires

matthijsotterloo picture matthijsotterloo  ·  3Commentaires

Tulleb picture Tulleb  ·  3Commentaires

shivang2902 picture shivang2902  ·  3Commentaires