Ошибка
После прочтения errorStream()
из request
(после приведения его к HttpURLConnection
) HTML печатается и гласит:
Доступ запрещен | fortnite-public-api.theapinetwork.com использовал Cloudflare
ограничить доступ
и
Владелец этого сайта (fortnite-public-api.theapinetwork.com) имеет
запретил вам доступ на основании подписи вашего браузера
(Mybrowsersignature).
Что это значит
Cloudflare заявляет, что эта ошибка означает, что:
владелец домена блокирует этот запрос на основе веб-клиента
подпись браузера.
и что эта функция называется «Проверка целостности браузера», оттуда мы можем найти Что делает Проверка целостности браузера? :
Проверка целостности браузера Cloudflare (BIC) похожа на плохое поведение
и ищет общие заголовки HTTP, которые чаще всего используются спамерами и
запрещает доступ к вашей странице. Это также бросит вызов посетителям, которые делают
не иметь пользовательского агента или нестандартного пользовательского агента (также часто используется
путем злоупотребления ботами, сканерами или посетителями).
Решение
Мы можем изменить User-Agent
из request
на что-то, что должно быть действительным до request.connect();
, примерно так (пользовательский агент скопирован из User-Agent | MDN ):
request.setRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0");
Ожидается вывод:
Ninja