CONNECT ਦੌਰਾਨ ਅਟਕਣ ਵਾਲੇ Apache HttpClient 5 ਪ੍ਰੌਕਸੀ ਲਈ ਟਾਈਮਆਊਟ
ਟਨਲ ਸੈਟਅੱਪ ਲਈ ਕਨੈਕਸ਼ਨ ਮੈਨੇਜਰ ਦਾ ਸੌਕਟ I/O ਟਾਈਮਆਊਟ ਸੈੱਟ ਕਰੋ, ਨਾਲ ਹੀ ਵੱਖਰਾ TCP ਕਨੈਕਟ ਟਾਈਮਆਊਟ।
ਪ੍ਰੌਕਸੀ ਨੇ TCP ਸਵੀਕਾਰ ਕੀਤਾ ਪਰ CONNECT ਜਵਾਬ ਕਦੇ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ। ਵੈੱਬਸਾਈਟ ਦਾ ਜਵਾਬ ਅਜੇ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਇਆ; ਸਿਰਫ਼ ਉਸ ਬਾਅਦ ਵਾਲੇ ਜਵਾਬ ਵੱਲ ਟਿਕਾਇਆ ਟਾਈਮਆਊਟ ਇਸ ਸੈਟਅੱਪ ਨੂੰ ਬੇਅੰਤ ਉਡੀਕ ਵਿੱਚ ਛੱਡ ਸਕਦਾ ਹੈ।
Apache HttpClient 5.3.1 ਲਈ, ਕਨੈਕਸ਼ਨ ਮੈਨੇਜਰ ਦੇ ਡਿਫਾਲਟ ਸੈੱਟ ਕਰੋ:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();Apache HttpComponents 5 ਦੀਆਂ ਕਲਾਸਾਂ org.apache.hc ਦੇ ਅਧੀਨ ਵਰਤੋ, Timeout ਨਾਲ core5 ਯੂਟਿਲਿਟੀ ਪੈਕੇਜ ਵਿੱਚ। ਕਲਾਇੰਟ ਨੂੰ ਇਸ ਦੇ ਕੰਮ ਲਈ ਰੱਖੋ ਅਤੇ ਬੰਦ ਕਰੋ। ਵੱਖਰੇ ਜਨਤਕ HTTP ਟੈਸਟ ਲਈ, HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ ਇੱਕ ਉਮੀਦਵਾਰ ਐਂਡਪੌਇੰਟ ਦਿੰਦਾ ਹੈ; ਟਾਈਮਆਊਟ ਦੀ ਤੁਲਨਾ ਕਰਦੇ ਸਮੇਂ ਮੰਜ਼ਿਲ ਸਥਿਰ ਰੱਖੋ।
| ਸੀਮਾ | ਸੰਬੋਧਿਤ ਉਡੀਕ |
|---|---|
| ਕਨੈਕਟ ਟਾਈਮਆਊਟ | ਕਨੈਕਸ਼ਨ ਸਥਾਪਨਾ |
| ਸੌਕਟ ਟਾਈਮਆਊਟ | CONNECT ਵਟਾਂਦਰੇ ਸਮੇਤ ਡਿਫਾਲਟ I/O ਨਿਸ਼ਕਿਰਿਆਤਾ |
| ਪੂਲ ਤੋਂ ਪ੍ਰਾਪਤੀ / ਐਪਲੀਕੇਸ਼ਨ ਜਵਾਬ | ਹੋਰ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਕਨਫਿਗਰ ਕੀਤੇ ਪੜਾਅ |
CONNECT ਤੋਂ ਬਾਅਦ, TLS ਨੂੰ HttpClient 5 ਦੀ TLS ਕਨਫਿਗਰੇਸ਼ਨ ਰਾਹੀਂ ਆਪਣੀ ਸੈਟਅੱਪ ਸੀਮਾ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਨਿਸ਼ਕਿਰਿਆਤਾ ਅਤੇ ਕੁੱਲ ਸਮਾਂ-ਸੀਮਾ ਵਿੱਚ ਵੀ ਫ਼ਰਕ ਕਰੋ: ਵਿਰਾਮ ਵਾਲੇ ਬਾਈਟ ਜਾਂ ਦੁਹਰਾਏ ਪ੍ਰਮਾਣਿਕਤਾ ਵਟਾਂਦਰੇ ਕੁੱਲ ਸਮਾਂ ਵਧਾ ਸਕਦੇ ਹਨ। ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਸਮਰਥਿਤ ਸਮਾਂ-ਸੀਮਾ ਜਾਂ ਰੱਦ ਕਰਨ ਦੀ ਨੀਤੀ ਵਰਤੋ ਪੂਰੀ ਕਾਰਵਾਈ ਲਈ ਇੱਕ ਬਜਟ.