ใน Indy 10 เชื่อมต่อ TIdHTTP กับพร็อกซี SOCKS ผ่าน IOHandler ของมัน สมมติว่าแบบฟอร์มมีคอมโพเนนต์ Http, SocketHandler และ Socks อยู่แล้ว:

Http.IOHandler := SocketHandler;
SocketHandler.TransparentProxy := Socks;
Socks.Host := 'proxy.example';
Socks.Port := 1080;
Socks.Version := svSocks5;

Page := Http.Get('http://example.com/');

ในที่นี้ SocketHandler คือ TIdIOHandlerStack และ Socks คือ TIdSocksInfo กำหนดค่าคอมโพเนนต์ก่อนส่งคำขอ สำหรับตัวอย่างเว็บไซต์สาธารณะที่ไม่ได้ตั้งค่าข้อมูลรับรองพร็อกซีนี้ ให้เลือกผู้สมัคร SOCKS5 จากรายการพร็อกซี SOCKS5 และเก็บเส้นทางพร็อกซี HTTP ที่ล้าสมัยให้ว่างตามที่อธิบายด้านล่าง การเลือกเวอร์ชัน SOCKS มีความสำคัญเพราะค่าเริ่มต้นคือ svNoSocks

ProxyParams ของ TIdHTTP กำหนดค่าพร็อกซี HTTP ส่วนเส้นทาง SOCKS อย่างเดียวเป็นของ TransparentProxy การเก็บพร็อกซี HTTP ไว้ที่นั่นด้วยอาจอธิบายตัวกลางอีกตัวนอกเหนือจากการเชื่อมต่อ SOCKS ดังนั้นควรล้างการกำหนดค่าพร็อกซี HTTP ที่ล้าสมัยเมื่อไม่ได้เป็นส่วนหนึ่งของเส้นทางที่ต้องการ

สำหรับการยืนยันตัวตนด้วยชื่อผู้ใช้/รหัสผ่านของ SOCKS5 ให้ตั้ง Socks.Authentication เป็น saUsernamePassword และระบุชื่อผู้ใช้และรหัสผ่าน IOHandler ที่รองรับ SSL ควรคงบทบาท TLS ไว้ ให้เชื่อม SOCKS เข้ากับอินเทอร์เฟซพร็อกซีที่สืบทอดมาแทนการแทนที่ด้วยตัวจัดการธรรมดา

บทความที่เกี่ยวข้อง