2016-09-24 148 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体系结构的在后端制得的类型。