Apache HttpAsyncClient 5: IOReactorConfig ਨਾਲ SOCKS ਸੈਟਿੰਗਾਂ
ਕਲਾਸਿਕ ਕਲਾਇੰਟ ਦੀ socket ਸੰਰਚਨਾ ਲਗਾਉਣ ਦੀ ਬਜਾਏ HttpAsyncClient 5 ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ reactor ਵਿੱਚ ਪ੍ਰੌਕਸੀ ਪਤਾ ਸੈੱਟ ਕਰੋ।
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 ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਹੋਸਟ ਅਤੇ ਪੋਰਟ ਦੇ ਵਿਕਲਪ ਦਿੰਦੀ ਹੈ; reactor ਵੱਲੋਂ ਸਮਰਥਿਤ SOCKS ਵਰਜਨ ਮਿਲਾਓ।
ਇਸ ਅਸਿੰਕ੍ਰੋਨਸ socket ਰਸਤੇ ਨੂੰ reactor ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ। HTTP HttpHost ਪ੍ਰੌਕਸੀ ਰੂਟ ਜਾਂ ਕਲਾਸਿਕ ਕਨੈਕਸ਼ਨ ਮੈਨੇਜਰ ਦਾ SocketConfig ਵੱਖਰਾ ਇੰਟਰਫੇਸ ਹੈ।
ਸਮਰਥਿਤ SOCKS ਵਰਤੋਂਕਾਰ-ਨਾਂ/ਪਾਸਵਰਡ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ reactor builder ਉੱਤੇ setSocksProxyUsername ਅਤੇ setSocksProxyPassword ਵੀ ਸੈੱਟ ਕਰੋ। ਬੇਨਤੀਆਂ ਚੱਲਣ ਦੌਰਾਨ ਸਾਂਝੀਆਂ ਸੈਟਿੰਗਾਂ ਬਦਲਣ ਦੀ ਬਜਾਏ start ਤੋਂ ਪਹਿਲਾਂ ਸੰਰਚਨਾ ਪੂਰੀ ਕਰੋ।