首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swift的URL请求

使用Swift的URL请求
EN

Stack Overflow用户
提问于 2015-07-29 13:04:50
回答 2查看 1.1K关注 0票数 1

我可以访问“字典”moviedb,例如:https://www.themoviedb.org/search/remote/multi?query=exterminador%20do%20futuro&language=en

我如何才能从这个网页上只捕捉到电影的名字和海报到我在Swift的项目中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-29 13:26:50

答案是:)

代码语言:javascript
复制
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()
    }
}
票数 1
EN

Stack Overflow用户

发布于 2016-03-27 19:50:38

您需要在请求中包含api密钥。我只想试试这样的方法,看看它是否有效。如果是这样的话,那么您可以以一种不同的方式使用api密钥,以使其更加安全。我不会费心的,因为它不是一个功能非常敏感的api。

代码语言:javascript
复制
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)属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31701265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档