הגדרות פרוקסי של PHP SoapClient עבור WSDL וקריאות שירות
הגדירו את אפשרויות הפרוקסי של PHP SoapClient לטעינת WSDL ולקריאות שירות בלי להזריק פרטי התחברות אל User-Agent.
טעינת 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 ארוכה.