Ustaw trasę na obiekcie Mechanize przed pobraniem:

use WWW::Mechanize;

my $mech = WWW::Mechanize->new(timeout => 30);
$mech->proxy(
    ['http', 'https'],
    'http://proxy.example.net:8080',
);

Użyj zamierzonego nasłuchiwacza HTTP z przykładu; dla dozwolonych żądań do celów publicznych kandydaci znajdują się na liście proxy HTTP. Tablica nazywa schematy docelowe. Punkt końcowy http:// zapewnia zwykłą trasę CONNECT dla HTTPS: HTTP do proxy, tunel do celu, następnie TLS celu. Jeśli wdrożenie zamiast tego używa ustawień środowiska, $mech->env_proxy jest alternatywą; zaimportowanie ich później może zmienić trasę przypisaną w kodzie.

Mechanize dziedziczy obsługę sieci LWP::UserAgent, zamiast zapewniać osobny silnik proxy HTTPS:

  • Mechanize zapewnia linki, formularze i zachowanie bieżącej strony.
  • LWP::UserAgent i jego transport HTTP wybierają trasę i organizują CONNECT.
  • LWP::Protocol::https zapewnia obsługę HTTPS i aktualizuje połączenie.
  • Net::HTTPS ze swoim backendem SSL zapewnia gniazdo obsługujące TLS, zwykle IO::Socket::SSL w nowoczesnych konfiguracjach.

Zainstalowany backend SSL sam nie wybiera proxy. Zachowaj oryginalną nazwę hosta HTTPS w URL: akceptacja CONNECT nie weryfikuje certyfikatu tej witryny.

Podczas konserwacji starych komponentów rozróżnij te granice. libwww-perl 6.06 i dystrybuowany osobno LWP::Protocol::https 6.06 wprowadziły skoordynowane poprawki dla zwykłego HTTP CONNECT. Sama wersja UserAgent nie identyfikuje modułu HTTPS. LWP::Protocol::https 6.15 dodał poprawkę dla punktów końcowych proxy z TLS, których schemat https:// dodaje TLS do proxy przed TLS celu.

Starsze konfiguracje Net::SSL/Crypt::SSLeay mogą zamiast tego używać udokumentowanego mechanizmu środowiskowego HTTPS_PROXY tego backendu. Nie stosuj jego receptury do nowoczesnej ścieżki IO::Socket::SSL, gdzie LWP odpowiada za routing.

Użyj pierwszego nieudanego etapu do wyboru komponentu: brakujący program obsługi HTTPS dotyczy modułu protokołu; odrzucony CONNECT dotyczy trasy, danych uwierzytelniających lub polityki; błąd certyfikatu po tunelu dotyczy tożsamości i zaufania celu. Zachowaj weryfikację podczas zmiany komponentu, który potwierdzają te dowody.

Powiązane artykuły