Изпълнявам програма, която изпраща заявки до публичния API на facebook graph. Неговият многопоточен и потребителски агент е зададен ("Mozilla/5.0...").
След 1000-10000 заявки започва да получава изключение:
"java.io.IOException: Сървърът върна HTTP код на отговор: 403 за URL = https://graph.facebook.com/etc..."
за всички нишки, които се опитват да получат отговор.
Ако спра процеса и го рестартирам след, да речем, 10 минути, той ще работи, но ще получи изключенията след по-малко заявки. Докато програмата работи и получава тези изключения, проверих заявката чрез уеб браузъра chrome и тя получи отлично отговорите.
Опитах да превключа низовете на потребителския агент по време на изпълнение, но не се получи. Задаването на глобално време на забавяне за всички нишки, когато една нишка срещне изключението, понякога работи, времето за изчакване не е последователно.
Тъй като ip адресът не е блокиран, ми е трудно да разбера как API идентифицира моята заявка и знам, че не използвам действителен браузър, дори когато е дефинирано свойство на потребителски агент.