2017-09-08 2 views
0

J'ai ce array = [1,2,3] et je veux l'envoyer comme ceci:Comment envoyer des paramètres personnalisés pour une méthode GET dans Alamofire?

http://somedomain.com/today?intersets=1,2,3

Je suis en train de l'envoyer comme ceci:

let params: Parameters = [ "intersets": array]

Alamofire.request(url, method: .get, parameters: params ,headers: header)

mais après l'impression response.request, j'ai obtenu ceci:

http://somedomain.com/today?intersets%5B%5D=1&intersets%5B%5D=2intersets%5B%5D=3

Des idées sur la façon de résoudre cette demande?

+1

Notez que * si * votre serveur attend en fait un tableau et l'analyse syntaxique des virgules à nouveau, puis en utilisant votre approche actuelle est en réalité plus correcte puisque c'est la façon dont vous transmettez un tableau via GET. – luk2302

+0

@ luk2302 Merci mec, hors de question, vous avez mentionné que c'est comme ça dans GET, cela change-t-il dans le POST? –

+1

Dans le corps du POST, vous envoyez principalement json qui a un support natif pour les tableaux et donc aucune manipulation de chaîne. Ce que je voulais dire précédemment était "dans les paramètres d'URL" qui est le seul endroit pour mettre des paramètres dans GET. – luk2302

Répondre

1

Vous devez joindre le tableau dans un String et l'envoyer en tant que paramètre.

let string = array.joined(separator: ",") 
let params: Parameters = [ "intersets": string] 
+0

J'ai obtenu ce 'blahblahblah/today? Intersets = 1% 2C2% 2C3', comment supprimer% 2C de et le remplacer par', ' –

+2

Vous ne pouvez pas envoyer un', 'directement comme un paramètre, comme dans un URL, vous devriez ** encoder ** caractères spéciaux. '% 2C' est la forme codée de', '. – the4kman