swiftyjson example alamofireobjectmapper swift alamofire

swift - example - Cómo agregar parámetros URL de Alamofire



swiftyjson (2)

Tengo un escenario de trabajo usando Postman pasando parámetros de URL. Ahora, cuando trato de hacerlo a través de Alamofire en Swift, no funciona.

¿Cómo crearías esta url en Alamofire? http://localhost:8080/?test=123

_url = "http://localhost:8080/" let parameters: Parameters = [ "test": "123" ] Alamofire.request(_url, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: headers


El problema es que estás usando URLEncoding.default . Alamofire interpreta URLEncoding.default diferente según el method HTTP que esté utilizando.

Para las solicitudes GET , HEAD y DELETE , URLEncoding.default codifica los parámetros como una cadena de consulta y la agrega a la URL, pero para cualquier otro método (como POST ) los parámetros se codifican como una cadena de consulta y se envían como el cuerpo de La solicitud HTTP.

Para utilizar una cadena de consulta en una solicitud POST , debe cambiar su argumento de encoding a URLEncoding(destination: .queryString) .

Puede ver más detalles sobre cómo Alamofire maneja los parámetros de solicitud here .

Su código debe verse como:

_url = "http://localhost:8080/" let parameters: Parameters = [ "test": "123" ] Alamofire.request(_url, method: .post, parameters: parameters, encoding: URLEncoding(destination: .queryString), headers: headers)


Si desea que sus parámetros se usen en la cadena de consulta, use .queryString como URLEncoding, como en: (Supongo que tiene encabezados en algún lugar)

let _url = "http://localhost:8080/" let parameters: Parameters = [ "test": "123" ] Alamofire.request(_url, method: .post, parameters: parameters, encoding: URLEncoding.queryString, headers: headers)

Este formulario es sugerido por el autor de Alamofire porque es más una coincidencia con el otro, vea la captura de pantalla:

Ver original here