Establezca la ruta en el objeto Mechanize antes de obtener:

use WWW::Mechanize;

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

Use el oyente HTTP previsto en el ejemplo; para solicitudes permitidas a destinos públicos, los candidatos están en la lista de proxies HTTP. La matriz nombra los esquemas de destino. El extremo http:// proporciona una ruta CONNECT ordinaria para HTTPS: HTTP hacia el proxy, túnel hacia el destino y luego TLS del destino. Si el despliegue usa en su lugar ajustes de entorno, $mech->env_proxy es la alternativa; importarlos después puede cambiar una ruta asignada en el código.

Mechanize hereda las funciones de red de LWP::UserAgent en lugar de ofrecer un motor de proxy HTTPS separado:

  • Mechanize aporta enlaces, formularios y el comportamiento de la página actual.
  • LWP::UserAgent y su transporte HTTP eligen la ruta y organizan el CONNECT.
  • LWP::Protocol::https aporta el manejo de HTTPS y eleva la conexión.
  • Net::HTTPS con su backend SSL aporta un socket compatible con TLS, normalmente IO::Socket::SSL en configuraciones modernas.

Un backend SSL instalado no selecciona un proxy por sí mismo. Mantenga el nombre de host HTTPS original en la URL: la aceptación de CONNECT no verifica el certificado de ese sitio.

Al mantener componentes antiguos, distinga estos límites. libwww-perl 6.06 y el LWP::Protocol::https 6.06 distribuido por separado introdujeron correcciones coordinadas para el CONNECT HTTP normal. La versión de UserAgent por sí sola no identifica el módulo HTTPS. LWP::Protocol::https 6.15 añadió una corrección para los extremos de proxy con TLS habilitado, cuyo esquema https:// añade TLS al proxy antes del TLS del destino.

Las configuraciones antiguas de Net::SSL/Crypt::SSLeay pueden usar en su lugar el mecanismo de entorno HTTPS_PROXY documentado de ese backend. No aplique su receta a la ruta moderna de IO::Socket::SSL, donde LWP controla el enrutamiento.

Use la primera etapa fallida para elegir el componente: un manejador HTTPS ausente atañe al módulo de protocolo; un CONNECT rechazado atañe a la ruta, las credenciales o la política; un error de certificado tras el túnel atañe a la identidad y la confianza del destino. Mantenga la verificación mientras cambia el componente que respalda esa evidencia.

Artículos relacionados