Sepertinya permintaan GET tidak menerjemahkan params array dengan benar.
let params: [String: AnyObject] = ["q": ["one", "two"], "target": "en"]
Alamofire.request(.GET, "https://www.googleapis.com/language/translate/v2", parameters: params)
menghasilkan url:
q%5B%5D=satu&q%5B%5D=dua&target=id
Saya pikir itu mencoba menambahkan [] untuk kasus POST. Tetapi dalam kasus GET seharusnya q=one&q=two
Ini adalah perilaku yang dimaksudkan. Menurut README.md,
Karena tidak ada spesifikasi yang dipublikasikan tentang cara menyandikan tipe koleksi, konvensi menambahkan [] ke kunci untuk nilai larik (foo[]=1&foo[]=2), dan menambahkan kunci yang dikelilingi oleh tanda kurung siku untuk nilai kamus bersarang ( foo[bar]=baz) [digunakan].
Alih-alih menggunakan GET, Anda harus mempertimbangkan untuk menggunakan POST atau PUT dan meneruskan nilai melalui JSON, XML, atau format lain yang terdefinisi dengan baik. Ini jelas membutuhkan perubahan sisi server.
Jika sisi server di luar kendali Anda, Anda harus mempertimbangkan untuk mengkodekan parameter ini secara manual.
Ya itu titik akhir google api, jadi itu di luar kendali saya. Google API tidak menyukai format itu. Saya dapat membuatnya secara manual, saya pikir saya akan mengajukannya agar kalian sadar.
@JRG-Developer benar—ini adalah perilaku yang dimaksudkan. Gunakan pengkodean parameter khusus jika Anda memerlukan apa pun selain opsi yang disediakan.