عيّن المسار على كائن Mechanize قبل الجلب:

use WWW::Mechanize;

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

استخدم مستمع HTTP المقصود في المثال؛ وللطلبات المسموح بها إلى أهداف عامة توجد المرشحات في قائمة بروكسيات HTTP. يسمّي المصفوفة مخططات الوجهة. توفّر نقطة النهاية http:// مسار CONNECT عاديًا لـ HTTPS: HTTP إلى البروكسي، ثم نفق إلى الهدف، ثم TLS الهدف. إذا استخدم النشر إعدادات البيئة بدلًا من ذلك، فإن $mech->env_proxy هو البديل؛ واستيرادها لاحقًا قد يغيّر مسارًا مُعيَّنًا في الشيفرة.

يرث Mechanize شبكة LWP::UserAgent بدلًا من توفير محرك بروكسي HTTPS منفصل:

  • يوفّر 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 إصلاحات منسّقة لـ CONNECT العادي في HTTP. إصدار UserAgent وحده لا يحدّد وحدة HTTPS. أضاف LWP::Protocol::https 6.15 إصلاحًا لـ نقاط نهاية بروكسي ممكّنة بـ TLS، حيث يضيف مخطط https:// الخاص بها TLS إلى البروكسي قبل TLS الهدف.

يمكن لإعدادات Net::SSL/Crypt::SSLeay الأقدم أن تستخدم بدلًا من ذلك آلية البيئة HTTPS_PROXY الموثّقة لتلك الخلفية. لا تطبّق طريقتها على مسار IO::Socket::SSL الحديث، حيث يتولى LWP التوجيه.

استخدم أول مرحلة فاشلة لاختيار المكوّن: معالج HTTPS المفقود يخصّ وحدة البروتوكول؛ ورفض CONNECT يخصّ المسار أو بيانات الاعتماد أو السياسة؛ وخطأ الشهادة بعد النفق يخصّ هوية الوجهة والثقة. أبقِ التحقق أثناء تغيير المكوّن الذي يدعمه ذلك الدليل.

مقالات ذات صلة