Я использую Volley в качестве сетевой библиотеки для своего проекта Android. Мне любопытно узнать, когда открывается сетевое соединение и поддерживает ли Volley одно и то же соединение при выполнении нескольких запросов POST с использованием одного и того же URL-адреса запроса?
Создает ли Volley новое сетевое подключение для каждого запроса в очереди запросов?
Ответы (1)
Ответ кроется в реализации HttpStack
interface. У Volley есть две готовые версии — HurlStack
, использующая HttpUrlConnection
, и HttpClientStack
, использующая библиотеку Apache.
Беглый взгляд на HurlStack
показывает, что новый объект HttpUrlConnection
создается для каждого запроса. Обычно пул соединений и повторное использование обрабатывается самим HttpUrlConnection
. Я думаю, что он будет вести себя максимально шустро и переиспользовать как можно больше ресурсов.
То же самое относится и к HttpClientStack
. Он использует общий HttpClient
для выполнения запросов, поэтому библиотека Apache должна иметь дело с пулом соединений и т. д.
Подводя итог, можно сказать, что создание и обслуживание низкоуровневой сети — это не то, чем непосредственно занимается Volley. Все дело в конкретных реализациях, но, насколько я помню, они сделают за вас как можно больше тяжелой работы.