Imposta la rotta sull'oggetto Mechanize prima del recupero:

use WWW::Mechanize;

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

Usa il listener HTTP previsto nell'esempio; per le richieste consentite verso destinazioni pubbliche, i candidati sono nella lista di proxy HTTP. L'array indica gli schemi di destinazione. L'endpoint http:// fornisce una rotta CONNECT ordinaria per HTTPS: HTTP verso il proxy, tunnel verso la destinazione, poi il TLS della destinazione. Se la distribuzione usa invece impostazioni d'ambiente, $mech->env_proxy è l'alternativa; importarle in seguito può cambiare una rotta assegnata nel codice.

Mechanize eredita il networking di LWP::UserAgent invece di fornire un motore proxy HTTPS separato:

  • Mechanize fornisce collegamenti, moduli e comportamento della pagina corrente.
  • LWP::UserAgent e il suo trasporto HTTP scelgono la rotta e organizzano CONNECT.
  • LWP::Protocol::https fornisce la gestione HTTPS e aggiorna la connessione.
  • Net::HTTPS con il suo backend SSL fornisce il socket abilitato a TLS, di norma IO::Socket::SSL nelle configurazioni moderne.

Un backend SSL installato non seleziona da solo un proxy. Mantieni il nome host HTTPS originale nell'URL: l'accettazione di CONNECT non verifica il certificato di quel sito.

Quando si mantengono componenti vecchi, distingui questi confini. libwww-perl 6.06 e LWP::Protocol::https 6.06, distribuito separatamente, hanno introdotto correzioni coordinate per il normale CONNECT HTTP. La sola versione di UserAgent non identifica il modulo HTTPS. LWP::Protocol::https 6.15 ha aggiunto una correzione per gli endpoint proxy abilitati a TLS, il cui schema https:// aggiunge TLS al proxy prima del TLS di destinazione.

Le configurazioni più vecchie di Net::SSL/Crypt::SSLeay possono invece usare il meccanismo d'ambiente HTTPS_PROXY documentato di quel backend. Non applicare la sua ricetta al percorso moderno IO::Socket::SSL, dove LWP possiede l'instradamento.

Usa il primo stadio fallito per scegliere il componente: un gestore HTTPS mancante riguarda il modulo di protocollo; un CONNECT rifiutato riguarda rotta, credenziali o criteri; un errore di certificato dopo il tunnel riguarda l'identità e la fiducia della destinazione. Mantieni la verifica mentre cambi il componente sostenuto da quell'evidenza.

Articoli correlati