Apache HttpAsyncClient 5: ตั้งค่า SOCKS ด้วย IOReactorConfig
ตั้งค่าที่อยู่พร็อกซีใน reactor ก่อนเริ่ม HttpAsyncClient 5 แทนการใช้การตั้งค่า socket ของไคลเอนต์แบบคลาสสิก
import java.net.InetSocketAddress;
import org.apache.hc.core5.reactor.IOReactorConfig;
import org.apache.hc.client5.http.impl.async.HttpAsyncClients;
var reactor = IOReactorConfig.custom()
.setSocksProxyAddress(new InetSocketAddress("proxy.example", 1080))
.build();
var client = HttpAsyncClients.custom()
.setIOReactorConfig(reactor)
.build();
client.start();ส่งคำขอแบบอะซิงโครนัสที่ต้องการผ่านไคลเอนต์นี้ โดยคง URI ปลายทางจริงของคำขอไว้ ใช้ไคลเอนต์เดิมตลอดงานแล้วค่อยปิด สำหรับคำขอที่ได้รับอนุญาตไปยังปลายทางสาธารณะ รายการพร็อกซี SOCKS มีโฮสต์และพอร์ตให้เลือก โดยต้องตรงกับเวอร์ชัน SOCKS ที่ reactor รองรับ
reactor ควบคุมเส้นทาง socket แบบอะซิงโครนัสนี้ เส้นทางพร็อกซี HTTP ที่ใช้ HttpHost หรือ SocketConfig ของตัวจัดการการเชื่อมต่อแบบคลาสสิกเป็นอีกอินเทอร์เฟซหนึ่ง
หากใช้การยืนยันตัวตน SOCKS ด้วยชื่อผู้ใช้และรหัสผ่านที่รองรับ ให้ตั้งค่า setSocksProxyUsername และ setSocksProxyPassword ใน reactor builder ด้วย ตั้งค่าให้เสร็จก่อน start แทนการเปลี่ยนค่าที่ใช้ร่วมกันระหว่างที่คำขอกำลังทำงาน