swiftyjson objective example alamofire swift3

objective - alamofire swift 4 example



Argumento adicional ''método'' en llamada (15)

Obteniendo error al llamar al método de solicitud de Alamofire en la última versión (4.0.0).

La sintaxis es:

Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: .JSON, headers: [:])

el tipo de requestParam es [String: Any]


Actualizado para Swift 3:

let requestString = "https://thawing-inlet-46474.herokuapp.com/charge.php" let params = ["stripeToken": token.tokenId, "amount": "200", "currency": "usd", "description": "testRun"] Alamofire.request(requestString,method: .post, parameters: params, encoding: JSONEncoding.default, headers: [:]).responseJSON { (response:DataResponse<Any>) in switch(response.result) { case .success(_): if response.result.value != nil{ print("response : /(response.result.value)") } break case .failure(_): print("Failure : /(response.result.error)") break } }


Asegúrese de que sus parameters sean [Cadena: Cualquiera]

es decir

let parameters = ["foo": "bar"]

No:

let parameters : Parameter = ["foo": "bar"]


Esta es una familia de funciones que son muy similares, lo que hace que el compilador piense que está tratando de usar una función diferente. Verifique que TODOS los argumentos que está proporcionando sean el TIPO CORRECTO que se espera. Por ejemplo, estaba pasando [String: Any] para la variante con encabezados, que esperaba [String: String] y obtuve el mismo error.


Estaba enfrentando el mismo problema e intente con todas las respuestas que publiqué anteriormente aquí, y luego obtuve la solución y la razón de este problema.

Esto sucedió debido a que pasó el análisis de objeto incorrecto en la solicitud y finalmente la solución:

theJSONText - cadena JSON

urlStr : cadena de URL

let urlEncoadedJson = theJSONText.addingPercentEncoding(withAllowedCharacters:.urlHostAllowed) let urls = NSURL(string:"urlStr/(urlEncoadedJson ?? "")") let method: HTTPMethod = .get Alamofire.request(urls! as URL, method: method, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in switch(response.result) { case .success(_): if response.result.value != nil { // write your code here } break case .failure(_): if response.result.error != nil { print(response.result.error!) } break } }

Nota: no hay ningún parámetro en mi URL.


Estaba teniendo el mismo problema, el problema está en el tipo de parámetros, debería ser del tipo [String: Any]. Después de hacer este cambio, funcionó para mí.

Alamofire.request(youUrl, method: .post, parameters: param as? [String: Any], encoding: JSONEncoding.default, headers: [:]) .responseJSON { response in


Lo arreglé asegurándome de que mis requestUrls son cadenas y no tipos de URL. También eliminé argumentos de parámetros para cuando el parámetro era nulo.

P.ej

Alamofire.request(requestUrl, method: .get, encoding: URLEncoding.default)


Los métodos de Almofire cambiaron en Swift 3 de la siguiente manera:

  1. Reordenar parámetros (url luego tipo de método).
  2. Cambie Enumding Enum para que sea "JSONEncoding.default", por ejemplo.

Mi problema estaba en los parámetros opcionales en los encabezados que no estaban desenvueltos.


Obtiene ese error debido a los tipos de datos incorrectos.

El tipo de parámetros debe ser [String: Any] y el tipo de parámetros no debe ser opcional.

El tipo de encabezado debe ser [String: String] o nil y el tipo de encabezado no debe ser opcional también.

Espero eso ayude. :-)


Siempre es porque estoy usando variables opcionales en cualquiera de los parámetros


Significa que algunos de los tipos de parámetros son incorrectos, compruebe que está enviando estos valores:

url: String method: HTTPMethod (E.g: .post) parameters: [String:Any] encoding: ParameterEncoding (E.g: JSONEncoding.default) headers: [String: String]


Solo puedo referirte a: https://github.com/Alamofire/Alamofire/issues/1508#issuecomment-246207682

Básicamente, si uno de sus parámetros es del tipo incorrecto, el compilador rápido asumirá que está utilizando request(urlRequest:URLRequestConvertible) y luego, el method es un extra argument

HTTPHeaders esos parámetros nuevamente y asegúrese de que todo sea del tipo correcto ( Parameters? ParameterEncoding y HTTPHeaders )


Tengo el problema, tengo que usar JSONEncoding.default en lugar de .JSON, por lo que la nueva sintaxis es

Alamofire.request(urlString,method: .post, parameters: requestParams, encoding: JSONEncoding.default, headers: [:])


solo asegúrese de que todos los parámetros estén en el formato correcto, lo más importante es que los parámetros deben estar en la matriz de tipo [String: Any].


Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: [:]).responseJSON { response in switch (response.result) { case .success: print(response) break case .failure: print(Error.self) } }