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)
答案 0 :(得分:1)
Swift 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.default
或URLEncoding.default
完全取决于后端制作的API架构的类型。
答案 1 :(得分:0)
for alamofire 4,
Alamofire.request(playlistUrl, method: .get, parameters: params, encoding: JSONEncoding.default)
希望这会对你有所帮助。
有关alamofire访问的最新变化的更多信息,
答案 2 :(得分:0)
//正确的代码是:
let playlistUrl = NSURL(string:
"https://www.googleapis.com/youtube/v3/playlistItems")!
let params:Parameters =
["key":API_KEY,"part":"snippet","playlistId":PLAYLIST_ID]
Alamofire.request(playlistUrl, method: HTTPMethod.get, parameters:
params, encoding: ParameterEncoding.URL, headers: nil)