java.net.HttpURLConnection
обрабатывает Keep-Alive
заголовок прозрачно , им можно управлять, и по умолчанию оно на . Но ваша проблема не в Keep-Alive
, который является флагом более высокого уровня, указывающим, что сервер должен закрыть соединение после обработки первого запроса, а скорее ожидания следующего.
В вашем случае, вероятно, что-то на нижнем уровне стека OSI прерывает соединение. Поскольку сохранение открытого, но бездействующего TCP-соединения в течение такого длительного периода времени никогда не является хорошим выбором (протокол FTP с двумя открытыми соединениями: одно для команд и одно для данных имеет одну и ту же проблему), я бы предпочел реализовать своего рода отключение повторите отказоустойчивую процедуру на стороне клиента.
На самом деле безопасный предел, вероятно, будет всего несколько минут, а не часов. Просто отключайтесь от HTTP-сервера каждые 60 секунд или 5 минут. Должен сделать свое дело.