ਲਿਆਉਣ ਤੋਂ ਪਹਿਲਾਂ Mechanize ਆਬਜੈਕਟ 'ਤੇ ਰੂਟ ਸੈੱਟ ਕਰੋ:

use WWW::Mechanize;

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

ਉਦਾਹਰਨ ਵਿੱਚ ਲੋੜੀਂਦਾ HTTP ਲਿਸਨਰ ਵਰਤੋ; ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਟਾਰਗਿਟ ਲਈ ਬੇਨਤੀਆਂ ਵਿੱਚ ਉਮੀਦਵਾਰ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਵਿੱਚ ਹਨ। ਐਰੇ ਮੰਜ਼ਿਲ ਸਕੀਮਾਂ ਦੇ ਨਾਮ ਦਿੰਦੀ ਹੈ। http:// ਐਂਡਪੌਇੰਟ HTTPS ਲਈ ਆਮ CONNECT ਰੂਟ ਦਿੰਦਾ ਹੈ: ਪ੍ਰੌਕਸੀ ਲਈ HTTP, ਟਾਰਗਿਟ ਲਈ ਸੁਰੰਗ, ਫਿਰ ਟਾਰਗਿਟ TLS। ਜੇ ਤੈਨਾਤੀ ਇਸ ਦੀ ਬਜਾਏ ਵਾਤਾਵਰਨ ਸੈਟਿੰਗਾਂ ਵਰਤਦੀ ਹੈ, $mech->env_proxy ਬਦਲ ਹੈ; ਉਨ੍ਹਾਂ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਆਯਾਤ ਕਰਨਾ ਕੋਡ ਵਿੱਚ ਦਿੱਤਾ ਰੂਟ ਬਦਲ ਸਕਦਾ ਹੈ।

Mechanize ਵੱਖਰਾ HTTPS ਪ੍ਰੌਕਸੀ ਇੰਜਣ ਦੇਣ ਦੀ ਬਜਾਏ LWP::UserAgent ਨੈੱਟਵਰਕਿੰਗ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦਾ ਹੈ:

  • Mechanize ਲਿੰਕ, ਫਾਰਮ ਅਤੇ ਮੌਜੂਦਾ ਸਫ਼ੇ ਦਾ ਵਿਵਹਾਰ ਦਿੰਦਾ ਹੈ।
  • LWP::UserAgent ਅਤੇ ਇਸ ਦੀ HTTP ਢੋਆ-ਢੁਆਈ ਰੂਟ ਚੁਣਦੇ ਹਨ ਅਤੇ CONNECT ਦਾ ਪ੍ਰਬੰਧ ਕਰਦੇ ਹਨ।
  • LWP::Protocol::https HTTPS ਸੰਭਾਲ ਦਿੰਦਾ ਹੈ ਅਤੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕਰਦਾ ਹੈ।
  • Net::HTTPS ਆਪਣੇ SSL ਬੈਕਐਂਡ ਨਾਲ TLS-ਸਮਰੱਥ ਸਾਕਟ ਦਿੰਦਾ ਹੈ, ਆਧੁਨਿਕ ਕੌਨਫਿਗਰੇਸ਼ਨਾਂ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ IO::Socket::SSL।

ਸਥਾਪਿਤ SSL ਬੈਕਐਂਡ ਆਪਣੇ ਆਪ ਪ੍ਰੌਕਸੀ ਨਹੀਂ ਚੁਣਦਾ। ਮੂਲ HTTPS ਹੋਸਟਨਾਮ URL ਵਿੱਚ ਰੱਖੋ: CONNECT ਦੀ ਸਵੀਕ੍ਰਿਤੀ ਉਸ ਸਾਈਟ ਦਾ ਸਰਟੀਫਿਕੇਟ ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਕਰਦੀ।

ਪੁਰਾਣੇ ਹਿੱਸਿਆਂ ਦੀ ਸੰਭਾਲ ਕਰਦੇ ਸਮੇਂ ਇਹ ਸੀਮਾਵਾਂ ਵੱਖ ਕਰੋ। libwww-perl 6.06 ਅਤੇ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਵੰਡਿਆ LWP::Protocol::https 6.06 ਨੇ ਆਮ HTTP CONNECT ਲਈ ਤਾਲਮੇਲ ਵਾਲੀਆਂ ਸੋਧਾਂ ਪੇਸ਼ ਕੀਤੀਆਂ। ਸਿਰਫ਼ UserAgent ਵਰਜਨ HTTPS ਮਾਡਿਊਲ ਦੀ ਪਛਾਣ ਨਹੀਂ ਕਰਦਾ। LWP::Protocol::https 6.15 ਨੇ TLS-ਸਮਰੱਥ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਲਈ ਸੋਧ ਜੋੜੀ, ਜਿਨ੍ਹਾਂ ਦੀ https:// ਸਕੀਮ ਟਾਰਗਿਟ TLS ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੌਕਸੀ ਵਿੱਚ TLS ਜੋੜਦੀ ਹੈ।

ਪੁਰਾਣੀਆਂ Net::SSL/Crypt::SSLeay ਕੌਨਫਿਗਰੇਸ਼ਨਾਂ ਇਸ ਦੀ ਬਜਾਏ ਉਸ ਬੈਕਐਂਡ ਦੀ ਦਸਤਾਵੇਜ਼ੀ HTTPS_PROXY ਵਾਤਾਵਰਨ ਵਿਧੀ ਵਰਤ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਦੀ ਵਿਧੀ ਨੂੰ ਆਧੁਨਿਕ IO::Socket::SSL ਮਾਰਗ 'ਤੇ ਲਾਗੂ ਨਾ ਕਰੋ, ਜਿੱਥੇ LWP ਰੂਟਿੰਗ ਦਾ ਮਾਲਕ ਹੈ।

ਹਿੱਸਾ ਚੁਣਨ ਲਈ ਪਹਿਲਾ ਅਸਫਲ ਪੜਾਅ ਵਰਤੋ: ਗੁੰਮ HTTPS ਹੈਂਡਲਰ ਪ੍ਰੋਟੋਕੋਲ ਮਾਡਿਊਲ ਨਾਲ ਸਬੰਧਤ ਹੈ; ਰੱਦ ਕੀਤਾ CONNECT ਰੂਟ, ਪ੍ਰਮਾਣ-ਪੱਤਰ ਜਾਂ ਨੀਤੀ ਨਾਲ ਸਬੰਧਤ ਹੈ; ਸੁਰੰਗ ਤੋਂ ਬਾਅਦ ਦੀ ਸਰਟੀਫਿਕੇਟ ਗਲਤੀ ਟਾਰਗਿਟ ਦੀ ਪਛਾਣ ਅਤੇ ਭਰੋਸੇ ਨਾਲ ਸਬੰਧਤ ਹੈ। ਜਿਹੜਾ ਹਿੱਸਾ ਉਸ ਸਬੂਤ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਉਹ ਬਦਲਦੇ ਸਮੇਂ ਪ੍ਰਮਾਣਿਕਤਾ ਬਣਾਈ ਰੱਖੋ।

ਸੰਬੰਧਿਤ ਲੇਖ