2015-06-23 1 views
1

Я получаю HTTP 429 Слишком много ответов на запросы при попытке получить доступ к любой странице Reddit с использованием расширения .json с использованием Java.HTTP 429 Слишком много запросов при доступе к странице Reddit .json только один раз с использованием Java

Я использую код Java here без каких-либо изменений (кроме изменения целевого URL). Я пытаюсь получить доступ к URL, например, следующие:

я могу получить доступ к этим страницам просто отлично с помощью браузера, но не может получить доступ к ним программно, несмотря на то, я делаю один запрос каждый раз и ожидание между ними. Reddit returns this message when more than 30 requests are made in a minute, но я делаю гораздо меньше, и никто в моей сети не использует Reddit.

Кто-нибудь знаком с этим и почему я могу получить эти ошибки? Будет ли лучший способ приблизиться к этому с помощью Java?

+0

ли вы "Изменить строку User-Agent вашего клиента к чему-то уникальным и описательным"? – immibis

+0

Я этого не делал - мне придется посмотреть на это. – Porthos3

+0

Это сработало отлично. Если вы ответите, я приму это. Я использовал: myHttpURLConnection.setRequestProperty («http.agent», «my-user-agent-name-here»); – Porthos3

ответ

4

Обязательно используйте пользовательскую строку агента пользователя - см 4-й пункт маркированного по правилам API:

  • Изменить строку User-Agent вашего клиента к чему-то уникальным и описательным, в том числе цели платформа, уникальный идентификатор приложения, версия строки, и ваше имя пользователя в качестве контактной информации, в следующем формате:

    <platform>:<app ID>:<version string> (by /u/<reddit username>) 
    
    • Пример:

      User-Agent: android:com.example.myredditapp:v1.2.3 (by /u/kemitche) 
      
    • Многие по умолчанию User-Agents (как "Python/URLLIB" или "Java") будут резко ограничены (курсив мой) поощрять уникальные и описательные строки агента пользователя.

    • Включая номер версии и обновляя ее при создании своего приложения, мы можем безопасно блокировать старые багги/сломанные версии вашего приложения.
    • НИКОГДА не лгите о вашем пользовательском агенте. Это включает в себя спуфинг популярных браузеров и спуфинг других ботов. Мы будем запрещать лжецов с крайними предрассудками.
+0

Добавление примера кода в случае, если кому-то нужны HttpGet httpGet = new HttpGet (yourUrl); httpGet.setHeader («User-Agent», yourUserAgentString); – Aerim

Смежные вопросы