URL-запрос с использованием Swift

У меня есть доступ к "словарю" moviedb, например: https://www.themoviedb.org/search/remote/multi?query=exterminador%20do%20futuro&language=en

Как я могу поймать только название фильма и постера с этой страницы для моего проекта в Swift?

2 ответа

Решение

Это ответ:)

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        reload()
    }

    private func reload() {
        let requestUrl = "https://www.themoviedb.org/search/remote/multi?query=exterminador%20do%20futuro&language=en"

        let config = NSURLSessionConfiguration.defaultSessionConfiguration()
        let session = NSURLSession(configuration: config)
        let request = NSURLRequest(URL: NSURL(string: requestUrl)!)

        let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
            if let error = error {
                println("###### error ######")
            }
            else {
                if let JSON = NSJSONSerialization.JSONObjectWithData(data,
                    options: .AllowFragments,
                    error: nil) as? [NSDictionary] {

                        for movie in JSON {
                            let name = movie["name"] as! String
                            let posterPath = movie["poster_path"] as! String

                            println(name)        // "Terminator Genisys"
                            println(posterPath)  // "/5JU9ytZJyR3zmClGmVm9q4Geqbd.jpg"
                        }
                }
            }
        })

        task.resume()
    }
}

Вы должны включить свой ключ API вместе с запросом. Я бы просто попробовал что-то подобное, чтобы увидеть, работает ли это или нет. Если это так, то вы можете использовать ключ API другим способом, чтобы сделать его более безопасным. Я бы не стал беспокоиться, так как это не API с очень чувствительным функционалом.

let query = "Terminator+second"
let url = NSURL(string: "http://api.themoviedb.org/3/search/keyword?api_key=YOURAPIKEY&query=\(query)&language=‌​en")!
let request = NSMutableURLRequest(URL: url)
request.addValue("application/json", forHTTPHeaderField: "Accept")

let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) { data, response, error in
    if let response = response, data = data {

    print(response)

    //DO THIS
    print(String(data: data, encoding: NSUTF8StringEncoding))

    //OR THIS
    if let o = NSJSONSerialization.JSONObjectWithData(data, options: nil, error:nil) as? NSDictionary {
        println(dict)
    } else {
        println("Could not read JSON dictionary")
    }
} else {
    print(error)
}
}

task.resume()

Ответ, который вы получите, будет иметь полный список свойств. Вам нужно свойство poster_path и title (или original_title) возвращаемого элемента.

Другие вопросы по тегам