使用Swift 3和Alamofire 4后没有得到回复

use*_*644 3 xcode ios swift alamofire swift3

在将代码更改为swift 3并使用Alamofire 4之前我遇到了问题.在使用Alamofire 4和swift 3之前,我的代码工作正常.当我改为swift 3并使用Alamofire 4时,我遇到了很多错误并且修好了所有错误.我还有一个问题,就是我没有得到任何回应!

我目前的代码使用Swift 3和Alamofire 4

import UIKit
import Alamofire

protocol VideoModelDelegate{
    func dataReady()
}


class VideoModel: NSObject {

    let API_KEY = "xxxxxxxxxxxxxxxxx"
    let UPLOADS_PLAYLIST_ID = "PLc4t1-K0nthvSUhYtc43BiG-Z9LK2mw5D"


    var videoArray = [Video]()

    var delegate: VideoModelDelegate?

    let urladdress = "https://www.googleapis.com/youtube/v3/playlistItems"


    func getFeedVideos() {

        Alamofire.request("https://www.googleapis.com/youtube/v3/playlistItems", method: .get, parameters: ["part":"snippet", "playlistId": UPLOADS_PLAYLIST_ID,"key": API_KEY, "maxResults": "50"], encoding: JSONEncoding.default).responseJSON(completionHandler: { (response) -> Void in

            print("##############################")
            print(response)
            print("##############################")



            if let JSON = response.result.value as? [String: Any] {

                print(JSON)

                var arrayOfVideos = [Video]()

                if let items = JSON["items"] as? [[String : Any]] {

                    for video in items {
                        print(JSON)

                        let videoObj = Video()
                        videoObj.videoId = (video as NSDictionary).value(forKeyPath:"snippet.resourceId.videoId") as! String

                        videoObj.videoTitle = (video as NSDictionary).value(forKeyPath:"snippet.title") as! String

                        videoObj.videoDescription = video["snippet.description"] as! String

                        if video[ "snippet.thumbnails.maxres.url"] != nil {
                            videoObj.videoThumbnailUrl = video["snippet.thumbnails.maxres.url"] as! String
                        }
                        else if video["snippet.thumbnails.hqdefault.url"] != nil{
                            videoObj.videoThumbnailUrl = video["snippet.thumbnails.hqdefault.url"] as! String

                        }
                        else if video["snippet.thumbnails.sddefault.url"] != nil{
                            videoObj.videoThumbnailUrl = video["snippet.thumbnails.sddefault.url"] as! String

                        }
                        else if video["snippet.thumbnails.mqdefault.url"] != nil{
                            videoObj.videoThumbnailUrl = video["snippet.thumbnails.mqdefault.url"] as! String

                        }

                        else if video["snippet.thumbnails.default.url"] != nil{
                            videoObj.videoThumbnailUrl = video["snippet.thumbnails.default.url"] as! String

                        }
                        else{

                        }



                        arrayOfVideos.append(videoObj)


                        if self.delegate != nil {
                            self.delegate!.dataReady()
                        }
                    }
                }
                else{
                    print("NOO")
                }
            }

        })
    }
}
Run Code Online (Sandbox Code Playgroud)

我以前的代码工作正常:

import UIKit
import Alamofire

protocol VideoModelDelegate{
    func dataReady()
}


class VideoModel: NSObject {

    let API_KEY = "xxxx"
    let UPLOADS_PLAYLIST_ID = Video().playlistID

    var videoArray = [Video]()

    var delegate:VideoModelDelegate?


    func getFeedVideos(){

        // Fetch the videos dynamically using YouTube Data API
        Alamofire.request(.GET, "https://www.googleapis.com/youtube/v3/playlistItems", parameters: ["part":"snippet", "playlistId":UPLOADS_PLAYLIST_ID, "key":API_KEY, "maxResults":50], encoding: ParameterEncoding.URL, headers: nil).responseJSON { (response) in

            if let JSON = response.result.value {

                var arrayOfVideos = [Video]()
                for video in JSON["items"] as! NSArray{
                    //print(video)

                    // Create video objects off of the JSON response
                    let videoObj = Video()
                    videoObj.videoId = video.valueForKeyPath("snippet.resourceId.videoId") as! String
                    videoObj.videoTitle = video.valueForKeyPath("snippet.title") as! String
                    videoObj.videoDescription = video.valueForKeyPath("snippet.description") as! String


                    if video.valueForKeyPath("snippet.thumbnails.maxres.url") != nil {
                        videoObj.videoThumbnailUrl = video.valueForKeyPath("snippet.thumbnails.maxres.url") as! String
                    }
                    else if video.valueForKeyPath("snippet.thumbnails.hqdefault.url") != nil{
                        videoObj.videoThumbnailUrl = video.valueForKeyPath("snippet.thumbnails.hqdefault.url") as! String

                    }
                    else if video.valueForKeyPath("snippet.thumbnails.sddefault.url") != nil{
                        videoObj.videoThumbnailUrl = video.valueForKeyPath("snippet.thumbnails.sddefault.url") as! String

                    }
                    else if video.valueForKeyPath("snippet.thumbnails.mqdefault.url") != nil{
                        videoObj.videoThumbnailUrl = video.valueForKeyPath("snippet.thumbnails.mqdefault.url") as! String

                    }
                    else{
                        videoObj.videoThumbnailUrl = video.valueForKeyPath("snippet.thumbnails.default.url") as! String
                    }

                    arrayOfVideos.append(videoObj)

                }

                // when all the video objects have been constructed, assign the array to the VideoModel property
                self.videoArray = arrayOfVideos.reverse()

                // Notify the delegate the data is ready
                if self.delegate != nil{
                    self.delegate!.dataReady()
                }
            }
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试打印响应这是我在日志中得到的:

FAILURE:错误域= kCFErrorDomainCFNetwork代码= 303"(null)"UserInfo = {NSErrorPeerAddressKey = {length = 28,capacity = 28,bytes = 0x1c1e01bb000000002607f8b040090809 ... 0000200a00000000},_ kCFStreamErrorCodeKey = -2201,_kCFStreamErrorDomainKey = 4}

Hir*_*ahi 8

您尝试过编码:JSONEncoding.default.

编码方法应该是URLEncoding.default