กำหนดค่า proxy HTTPI ของ Savon สำหรับคำขอ WSDL และ SOAP
กำหนดค่า proxy บนไคลเอนต์ Savon HTTPI และคำนึงถึงทั้งการดึง WSDL ระยะไกลและการเรียก SOAP
ในไคลเอนต์ Savon ที่ใช้ HTTPI นั้น proxy เป็นส่วนหนึ่งของออปชันของไคลเอนต์ ใช้ทั้งเมื่อดึง WSDL ระยะไกลและเมื่อส่งคำขอ SOAP
client = Savon.client(
wsdl: 'https://service.example/soap?wsdl',
proxy: ENV.fetch('SOAP_PROXY_URL'),
open_timeout: 5,
read_timeout: 15
)
ตัวอย่างนี้ถือว่าใช้ HTTPI transport ให้ URL ของ proxy ที่ได้รับอนุมัติผ่านตัวแปรสภาพแวดล้อม สำหรับการทดสอบ SOAP สาธารณะที่อนุญาตให้ใช้ตัวกลาง HTTP ที่ไม่มีการพิสูจน์ตัวตน ผู้สมัครจากรายการ proxy HTTPสามารถให้ URL นั้นได้ แยกการตัดสินใจเรื่องการพิสูจน์ตัวตนของบริการและของ proxy ออกจากกัน หากวิธีพิสูจน์ตัวตนที่รองรับใช้ข้อมูลรับรองใน URL ให้เข้ารหัสอักขระที่สงวนไว้ในข้อมูลรับรองนั้น และเก็บ URL ที่ได้ไว้นอกบันทึก
Savon เรียกสิ่งเหล่านี้ว่า “ออปชันส่วนกลาง” แต่มีผลเฉพาะกับอินสแตนซ์ของไคลเอนต์เดียว ไคลเอนต์อื่นที่สร้างขึ้นที่อื่นจะไม่สืบทอด proxy โดยอัตโนมัติ
ตรวจสอบ transport ที่ติดตั้งไว้ก่อนนำโค้ด snippet กลับมาใช้ เอกสารปัจจุบันของ Savon กำหนดออปชันเหล่านี้ให้ HTTPI ส่วน transport Faraday มีอินเทอร์เฟซการตั้งค่าของตัวเองผ่าน client.faraday และปฏิเสธออปชันเฉพาะ HTTPI เหล่านี้ ให้กำหนดค่า transport ที่เลือกแทนการผสมสองอินเทอร์เฟซ
แยกบัญชี proxy ออกจากข้อมูลรับรองของบริการ SOAP และค่าของ WS-Security 407 ของ proxy และการท้าทายเข้าสู่ระบบ HTTP ของบริการ รวมถึงความผิดพลาด SOAP บ่งชี้การแลกเปลี่ยนที่ต่างกัน การดึง WSDL อาจล้มเหลวก่อนที่ไคลเอนต์จะดำเนินการใดๆ ของแอปพลิเคชัน