AnyEvent::HTTP: отдельные маршруты прокси через sessionid
Используйте явный прокси AnyEvent::HTTP и идентификатор сеанса, когда несколько маршрутов прокси ведут к одной цели.
В AnyEvent::HTTP 2.25 многоразовое соединение может получить приоритет, даже если оно создано при других настройках прокси. Когда запросы к одному сайту идут разными маршрутами, разделяйте кеш значениями sessionid, специфичными для маршрута:
my $request = http_get 'http://www.example.com/',
proxy => ['proxy.example', 8080],
sessionid => 'office-route',
sub {
my ($body, $headers) = @_;
print $headers->{Status};
};Включите в эту идентичность сеанса любое различие учётных записей, нужное приложению. Повторное использование ограничено совпадающими сеансами. Если требуется новое соединение, вместо этого задайте persistent как false.
Для показанного публичного адреса HTTP список HTTP-прокси может дать подходящие значения хоста и порта, когда разрешён публичный маршрут без аутентификации. Фрагмент предполагает, что AnyEvent::HTTP загружен и его цикл событий работает. Держите страж запроса живым до завершения; его уничтожение отменяет операцию.
Массив прокси принимает имя хоста, порт и необязательную схему HTTP, а не URL с учётными данными. Аутентификация требует подходящего заголовка Proxy-Authorization, предоставленного вызывающим. Этот простой пример HTTP держит маршрутизацию и владение соединением отдельно от любой возможности туннеля HTTPS.