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 แทนการเปลี่ยนค่าที่ใช้ร่วมกันระหว่างที่คำขอกำลังทำงาน

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