2016-09-24 185 views
-4
let playlistUrl = NSURL(string: "https://www.googleapis.com/youtube/v3/playlistItems")! 

let params = ["key":API_KEY,"part":"snippet","playlistId":PLAYLIST_ID] 

Alamofire.request(playlistUrl, method: HTTPMethod.get, parameters: params, encoding: ParameterEncoding.URL, headers: nil) 

1額外的參數呼叫

+0

請檢查您的xcode版本以使用Alamofire 4.它應該是8.1+。 –

回答

1

雨燕3.0和Alamofire 4
你是做錯了,是傳遞一個NSURL作爲第一個參數的事情。不要將它作爲URL傳遞,而應將其作爲字符串傳遞。你也在這裏做錯了編碼。

因此,修改後的代碼將是如下: -

Alamofire.request("https://www.googleapis.com/youtube/v3/playlistItems", method: HTTPMethod.get, parameters: params, encoding: JSONEncoding.default, headers: nil) 

的這裏結果沒有被使用。所以把結果放在一個閉包中。

Alamofire.request("https://www.googleapis.com/youtube/v3/playlistItems", method: HTTPMethod.get, parameters: params, encoding: JSONEncoding.default, headers: nil).responseData { (response:DataResponse<Data>) in 

     switch(response.result) { 
     case .success(_): 
      if let data = response.result.value{ 
       print(data) 
      } 
      break 

     case .failure(_): 
      print(response.result.error) 
      break 
     } 

} 

另請檢查所需的編碼。查看此鏈接瞭解更多詳情。 https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%204.0%20Migration%20Guide.md#parameter-encoding-protocol

另外,檢查這個答案張貼由我。
Alamofire Swift 3.0 Extra parameter in call

JSONEncoding.defaultURLEncoding.default完全取決於API體系結構的在後端製得的類型。