54 votes

Argument supplémentaire 'méthode' dans l'appel

Obtention d'une erreur lors de l'appel de la méthode de requête Alamofire dans la dernière version (4.0.0).

La syntaxe est la suivante:

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

Le type de requestParam est [String: Any].

70voto

Seema Points 1057

J'ai eu le problème, je dois utiliser JSONEncoding.default au lieu de .JSON, donc la nouvelle syntaxe est

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

50voto

everlof Points 851

Je ne peux que vous renvoyer à: https://github.com/Alamofire/Alamofire/issues/1508#issuecomment-246207682

En gros, si l'un de vos paramètres est de type incorrect, la swift compilateur suppose que vous utilisez request(urlRequest:URLRequestConvertible) puis de, method est extra argument

Aller plus que les paramètres et assurez-vous que tout est du bon type (Parameters?, ParameterEncoding, et HTTPHeaders)

18voto

Xhulio Hasa Points 138

J'avais le même problème, le problème est de type paramètres, il devrait être de type [String: Any]. Après avoir apporté ce changement, cela a fonctionné pour moi.

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

10voto

A.G Points 9897

Mise à jour pour 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

            }
        }
 

10voto

Andrea.Ferrando Points 546

Cela signifie que certains types de paramètres sont incorrects, vérifiez que vous envoyez ces valeurs:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X