Alamofire: Obter parâmetros de solicitação e array

Criado em 3 fev. 2015  ·  3Comentários  ·  Fonte: Alamofire/Alamofire

Não parece que as solicitações GET estejam traduzindo os parâmetros da matriz corretamente.

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

gera a url:

q%5B%5D=um&q%5B%5D=dois&target=en

Acho que está tentando adicionar []'s para o caso POST. Mas no caso GET deve ser q=um&q=dois

Todos 3 comentários

Este é o comportamento pretendido. De acordo com o README.md,

Como não há especificação publicada sobre como codificar os tipos de coleção, a convenção de anexar [] à chave para valores de matriz (foo[]=1&foo[]=2) e anexar a chave entre colchetes para valores de dicionário aninhados ( foo[bar]=baz) [é usado].

Em vez de usar GET, você deve considerar usar POST ou PUT e passar valores via JSON, XML ou outro formato bem definido. Isso pode exigir alterações no lado do servidor, obviamente.

Se o lado do servidor estiver fora de seu controle, considere codificar manualmente esses parâmetros.

Sim, é o endpoint da API do Google, então está fora do meu controle. A API do google não gosta desse formato. Eu posso construí-lo manualmente, pensei em arquivá-lo para que vocês estejam cientes.

@JRG-Developer está correto - este é o comportamento pretendido. Use a codificação de parâmetro personalizado se precisar de algo além das opções fornecidas.

Esta página foi útil?
0 / 5 - 0 avaliações