Когда я запрашиваю api http://demo.tumblr.com/api/read/json, я получаю html с информацией GDPR вместо json. На веб-сайте я могу просто нажать «ОК», а затем я получаю json, как это правильно сделать в быстром темпе?
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()
}
Кажется, это исправлено: demo.tumblr.com/api/read/json
@mikedidthis Попробуйте в почтальоне, и тогда вы увидите мою проблему. В веб-браузере после нажатия «ок» вы получите json, но проблема в том, как сделать то же самое на мобильном устройстве, выполняя запрос? :)





Я не могу помочь вам со Swift, но чтобы пройти страницу согласия GDPR, вам необходимо отправить файл cookie с именем «pfg», содержимое которого зависит от строки агента пользователя, отправленной с запросом. Я выполнил следующие шаги:
В Chrome используйте ... / Дополнительные инструменты / Инструменты разработчика, чтобы открыть отладчик, затем ... / Дополнительные инструменты / Условия сети. Здесь вы можете настроить строку пользовательского агента, отправляемую Chrome, на все, что захотите. Я выбрал XXXXX для краткости.
Перейдите на demo.tumblr.com/read/api и получите форму согласия. Щелкните ОК.
Используйте расширение Chrome cookies.txt, чтобы сохранить файлы cookie для сайта в текстовый файл. Вы можете выбрать длинный файл cookie "pfg" позже.
Сделайте так, чтобы ваша программа отправляла строку пользовательского агента XXXXX и файл cookie pfg с запросом. Вы можете попробовать это с
wget -U XXXXX --load-cookies=cookies.txt https://demo.tumblr.com/read/api
Срок действия cookie установлен на 12 месяцев. Возможно, вам нужно будет обновить его до этого, а возможно, нет. Кто знает?
Этот ответ теперь устарел в контексте нового Tumblr API.
@Moritz: Верно, но я сделал это (на своем личном аккаунте). "демо" в URL - это пользователь. Я попытался открыть html в webView и поймать ссылку после нажатия кнопки «ОК», но никаких действий не было.