2017-10-04 55 views
1

我在我的iOS應用程序中使用Alamofire。我用post方法和參數一起使用都很順利。現在我想發送一個令牌作爲標題,但是我在調​​用中出現了額外參數「方法」的錯誤。 我搜索了在發佈請求中發送標題的方式,但只找到了我已經嘗試的方式。 我在做什麼錯?我錯過了什麼嗎? 這是我在發送郵件請求的代碼。在post方法中發送標題

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 
      } 

     }) 

我使用的斯威夫特3,Xcode中8,Alamofire 4

事情我嘗試:

清潔工程和重新建造。

刪除了參數encoding: JSONEncoding.default

初始化參數,如let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any]

規定的方法method: HTTPMethod.post方式,但仍然得到同樣的錯誤。

+0

嘗試運行錯誤可能是編譯器無法匹配簽名。 –

回答

0

我解決了這個。 標題應該是這樣。

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

我從Alamofire的官方文檔和它爲我工作中得到了這個東西。

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 
      } 

     }) 

注意:JSONEncoding.default不是強制性的,請嘗試刪除它。

這裏是類似的裁判問題:Extra argument 'method' in call of Alamofire

這裏是同樣的問題和解決的Alamofire開發者的討論:https://github.com/Alamofire/Alamofire/issues?utf8=%E2%9C%93&q=extra%20argument

+0

仍然是相同的錯誤:/ – kinza

+0

Pl。更新你的問題,你試過了什麼,所以我可以看到問題原因。 – Krunal

+0

檢查我更新的問題 – kinza