2017-10-04 1 views
1

Ich benutze Alamofire in meiner iOS App. Ich habe Post-Methode mit Parametern verwendet und alles ist gut gelaufen. Jetzt möchte ich ein Token als Header senden, aber ich erhalte einen Fehler von Extra-Argument 'Methode' im Aufruf. Ich suchte nach den Möglichkeiten, Header in Post-Anfrage zu senden, aber nur die Art und Weise gefunden, die ich bereits versuche. Was mache ich falsch? Habe ich etwas vergessen? Hier ist mein Code, in dem ich Post-Anfrage sende.Header in Post-Methode senden

let urlCreate = "#########" 
     Alamofire.request(urlCreate, method: .post, parameters: ["name" : adventureName, "lat" : lat, "long" : long], encoding: JSONEncoding.default, headers: ["jwtToken" : jwtToken]).responseJSON(completionHandler: { response in 
      switch response.result { 
      case .success: 
       print(response) 

      case .failure(let error): 
       print(error) 
       self.errorLabel.text = error as! String 
      } 

     }) 

Ich bin mit Swift 3, Xcode 8, Alamofire 4

Dinge, die ich versucht:

Reinigen Sie das Projekt und wieder aufgebaut.

den Parameter entfernt encoding: JSONEncoding.default

Initialized Parameter wie let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any]

Angegebene das Verfahren method: HTTPMethod.post Art und Weise, aber immer noch die gleichen Fehler.

+0

Versuchen Sie, mit Fehler ausgeführt wird möglicherweise Compiler nicht in der Lage, die Signatur übereinstimmen. –

Antwort

0

ich dieses Problem gelöst. Header sollte so sein.

let urlCreate = ###### 
     let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any] 
     let headers: HTTPHeaders = [ 
      "x-access-token": jwtToken!, 
      "Accept": "application/json" 
     ] 

Ich habe dieses Ding von Alamofire offiziellen Dokumente und es funktioniert für mich.

0
let urlCreate = "#########" 
let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any] 
let headers = ["jwtToken" : jwtToken] as [String : String] 

     Alamofire.request(urlCreate, method: .post, parameters: paramters, encoding: JSONEncoding.default, headers: headers).responseJSON(completionHandler: { response in 
      switch response.result { 
      case .success: 
       print(response) 

      case .failure(let error): 
       print(error) 
       self.errorLabel.text = error as! String 
      } 

     }) 

Hinweis: JSONEncoding.default ist nicht obligatorisch, versuchen Sie es zu entfernen.

ist hier ähnlich ref Frage: Extra argument 'method' in call of Alamofire

Hier Diskussion über gleiche Problem und die Auflösung von Alamofire Entwickler: https://github.com/Alamofire/Alamofire/issues?utf8=%E2%9C%93&q=extra%20argument

+0

Immer noch der gleiche Fehler:/ – kinza

+0

Pl. Update in deiner Frage, was du probiert hast, damit ich Problemursache sehen kann. – Krunal

+0

Überprüfen Sie meine aktualisierte Frage – kinza