Вы выяснили, что вам нужно вызвать env_proxy()
для объекта UserAgent.Но кажется, что NaServer
не является подклассом LWP::UserAgent
, поэтому вы не можете вызвать метод этого класса, как вы пытались в своем примере кода.
Давайте посмотрим на документация для LWP::UserAgent
для подсказок.Секция для new()
содержит интересный текст.
Если env_proxy
не указан, переменная окружения PERL_LWP_ENV_PROXY
управляет значением "env_proxy" в LWP ::UserAgent вызывается во время инициализации.
Мне кажется, эта функция предназначена именно для этой ситуации.Если у вас нет доступа к конструктору для объекта, вы можете использовать эту переменную среды для управления использованием прокси.Код в конструкторе выглядит следующим образом:
my $env_proxy = exists $cnf{env_proxy} ? delete $cnf{env_proxy} : $ENV{PERL_LWP_ENV_PROXY};
И, позже,
$self->env_proxy if $env_proxy;
Таким образом, исправление, кажется, добавляет:
$ENV{PERL_LWP_ENV_PROXY} = 1;
кверх вашего кода.
(NB У меня не было времени, чтобы проверить это.)