当我请求 api 时 http://demo.tumblr.com/api/read/json我得到带有 GDPR 信息的 html 而不是 json。在网站上,我只需点击“确定”,然后我就会得到 json,如何在 swift 中正确地做到这一点?
func makeReq(){
let url = "http://demo.tumblr.com/api/read/json"
URLSession.shared.dataTask(with: URL(string: url)!) { data, response, error in
let html = String(data: data!, encoding: String.Encoding.utf8)
self.webView.loadHTMLString(html!, baseURL: nil)
}.resume()
}
最佳答案
我无法帮助您使用 Swift,但要通过 GDPR 同意页面,您需要发送一个名为“pfg”的 cookie,其内容取决于随请求发送的用户代理字符串。这些是我遵循的步骤:
在 Chrome 中,使用 .../More tools/Developer tools 打开调试器,然后使用 .../More tools/Network conditions。在这里,您可以将 Chrome 发送的用户代理字符串设置为您想要的任何内容。为了简洁起见,我选择了 XXXXX。
浏览到 demo.tumblr.com/read/api 并获取同意书。点击确定。
使用 Chrome cookies.txt 扩展程序将站点的 cookie 保存到文本文件中。您可以稍后选择冗长的“pfg”cookie。
让您的程序随请求发送用户代理字符串 XXXXX 和“pfg”cookie。你可以尝试一下
wget -U XXXXX --load-cookies=cookies.txt https://demo.tumblr.com/read/api
cookie 的有效期设置为 12 个月。也许您需要在此之前更新它,或者不需要。谁知道呢?
关于swift - 如何传递 tumblr api GDPR 信息并获取 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50552328/