טעינת 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 או עיבוד מסמך.
עיבוד מסמך/סכימה מיובאכתובת האחזור הנוספת בפועל.
קריאה למתודת SOAPנקודת הקצה של השירות שהוצהרה ב-WSDL, אולי במארח אחר.

תהליך שמשתמש ב-WSDL שמור במטמון עלול לדלג על הבקשה שנכשלת במכונה אחרת. שמרו את תצורת המטמון ואת הכתובת שנכשלה בפועל יחד עם ההשוואה, במקום לשנות את הפרוקסי רק על סמך בנייה מוצלחת.

proxy_login/proxy_password מאמתים את המתווך. login/password של היעד ואימות שירות ברמת SOAP משמשים שכבות אחרות. השתמשו באפשרויות הייעודיות במקום לשים כותרות דמויות חשבון ב-User-Agent; כותרות אפליקציה נדרשות שייכות לממשק כותרות נתמך.

תעדו את הפעולה, היעד והצד שמנפיק אתגר עם הסרת סודות. connection_timeout מגביל את כינון החיבור, לא את משך הזמן הכולל של פעולת SOAP ארוכה.

מאמרים קשורים