Как передать tumblr api GDPR информацию и получить JSON? - PullRequest
0 голосов
/ 27 мая 2018

Когда я запрашиваю API http://demo.tumblr.com/api/read/json, я получаю html с информацией GDPR вместо 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()
}

1 Ответ

0 голосов
/ 02 июня 2018

Я не могу помочь вам со Swift, но чтобы пройти страницу согласия GDPR, вам нужно отправить cookie с именем 'pfg', содержимое которого зависит от строки user-agent, отправленной с запросом.Вот шаги, которые я выполнил:

  1. В Chrome используйте ... / Дополнительные инструменты / Инструменты разработчика, чтобы открыть отладчик, затем ... / Дополнительные инструменты / Условия сети.Здесь вы можете установить строку user-agent, отправляемую Chrome, на что угодно.Для краткости я выбрал XXXXX.

  2. Перейдите по адресу demo.tumblr.com/read/api и получите форму согласия.Нажмите ОК.

  3. Используйте расширение Chrome cookies.txt, чтобы сохранить файлы cookie для сайта в текстовом файле.Позднее вы можете выбрать длительный файл cookie pfg.

  4. Заставьте вашу программу отправить запрос user-agent XXXXX и файл cookie pfg с запросом.Вы можете попробовать его с

    wget -U XXXXX --load-cookies=cookies.txt https://demo.tumblr.com/read/api

  5. Срок действия файла cookie установлен на 12 месяцев.Возможно, вам нужно будет обновить его до того, или нет.Кто знает?

...