يمكن أن يحدث تحميل WSDL عن بُعد داخل منشئ SoapClient. وفّر الوكيل قبل ذلك الجلب الأول:

$client = new SoapClient('https://service.example.com/api?wsdl', [
    'proxy_host' => '203.0.113.10',
    'proxy_port' => 8080,
    'proxy_login' => getenv('PROXY_USER'),
    'proxy_password' => getenv('PROXY_PASSWORD'),
    'connection_timeout' => 5,
    'exceptions' => true,
]);

استخدم WSDL الحقيقي ومضيف/منفذ الوكيل ومصدر بيانات الاعتماد المقصود. حقل المضيف عنوان، ومنفذه منفصل.

عندما يفشلالطلب أو العملية التي يجب فحصها
إنشاء العميلجلب WSDL أو معالجة المستند.
معالجة مستند/مخطط مستوردعنوان URL الإضافي الفعلي للجلب.
استدعاء طريقة SOAPنقطة نهاية الخدمة المعلنة في WSDL، وقد تكون على مضيف آخر.

قد يتخطى العامل الذي يستخدم WSDL مخزنًا مؤقتًا الطلب الذي يفشل على جهاز آخر. احتفظ بإعدادات الذاكرة المؤقتة وعنوان URL الفاشل الفعلي مع المقارنة بدلًا من تغيير الوكيل بناءً على نجاح الإنشاء فقط.

proxy_login/proxy_password يصادقان الوسيط. مصادقة login/password في الوجهة ومصادقة الخدمة على مستوى SOAP تخدم طبقات أخرى. استخدم الخيارات المخصصة بدلًا من وضع رؤوس تشبه الحساب في User-Agent؛ رؤوس التطبيق المطلوبة تنتمي إلى واجهة رؤوس مدعومة.

سجّل العملية والهدف والطرف الذي يصدر التحدي مع إزالة الأسرار. connection_timeout يحد من إنشاء الاتصال، لا من المدة الكاملة لعملية SOAP طويلة.

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