การตั้งค่าพร็อกซีของ 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 หรือการประมวลผลเอกสาร |
| การประมวลผลเอกสาร/สคีมาที่นำเข้า | URL การดึงเพิ่มเติมจริง |
| การเรียกเมธอด SOAP | ปลายทางของบริการที่ประกาศใน WSDL อาจอยู่บนโฮสต์อื่น |
กระบวนการที่ใช้ WSDL จากแคชอาจข้ามคำขอที่ล้มเหลวบนเครื่องอื่น เก็บการกำหนดค่าแคชและ URL ที่ล้มเหลวจริงไว้พร้อมกับการเปรียบเทียบ แทนที่จะเปลี่ยนพร็อกซีโดยอาศัยเพียงความสำเร็จของการสร้าง
proxy_login/proxy_password ตรวจสอบสิทธิ์ ตัวกลาง login/password ของปลายทางและการตรวจสอบสิทธิ์บริการระดับ SOAP รับใช้ชั้นอื่น ๆ จงใช้ตัวเลือกเฉพาะแทนการใส่ส่วนหัวที่คล้ายบัญชีลงใน User-Agent ส่วนหัวของแอปพลิเคชันที่จำเป็นเป็นของอินเทอร์เฟซส่วนหัวที่รองรับ
บันทึก การดำเนินการ เป้าหมาย และฝ่ายที่ออกสิ่งที่ท้าทาย โดยนำความลับออก connection_timeout จำกัดการสร้างการเชื่อมต่อ ไม่ใช่ระยะเวลาทั้งหมดของการดำเนินการ SOAP ที่ยาวนาน