Apache HttpClient 5 ਨੂੰ JVM ਪਰਾਕਸੀ ਸੈਟਿੰਗਾਂ ਪੜਹਨ ਲਈ ਕਹੋ
Apache HttpClient 5 ਕਲਾਇਂਟ ਵਿੱਚ ਸਿਸਟਮ ਪ੍ਰਾਪਰਟੀਜ਼ ਸੱਖਮ ਕਰੋ ਅਤੇ ਸਪਸਟ ਰੂਟ-ਪਲਾਨਰ ਓਵਰਰਾਈਡ ਜਾਂਚੋ।
ਕਲਾਸਿਕ Apache HttpClient 5 API ਲਈ, ਕਲਾਇਂਟ ਬਣਾਉਂਦੇ ਸਮੇਂ ਇਸਨੂੰ ਸਿਸਟਮ ਪ੍ਰਾਪਰਟੀਜ਼ ਲਈ ਸੱਖਮ ਕਰੋ:
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
try (CloseableHttpClient client = HttpClients.custom()
.useSystemProperties()
.build()) {
// Execute the application's HTTP work with this client.
}ਇੱਛਿਤ ਸਟਾਰਟਅੱਪ ਆਰਗਿਊਮੈਂਟ ਦਿਓ, ਜਿਵੇਂ -Dhttp.proxyHost=203.0.113.10 -Dhttp.proxyPort=8080, ਆਪਣਾ ਅਸਲ ਐਂਡਪੋਈਂਟ ਵਰਤਕੇ। HTTP ਪਰਾਕਸੀ ਸੂਚੀ ਉਸ ਰਾਹ ਦੀ ਇਜਾਜ਼ਤ ਹੋਣ ਤੇ ਸਾਰਵਜਨਿਕ ਉਮੀਦਵਾਰ ਦਿਂਦੀ ਹੈ। ਸੰਬੰਧਿਤ ਮੰਜ਼ਿਲਾਂ ਲਈ HTTPS ਅਤੇ ਬਾਈਪਾਸ ਪ੍ਰਾਪਰਟੀਜ਼ ਸ਼ਾਮਿਲ ਕਰੋ। ਸਿਰਫ਼ JVM ਪ੍ਰਾਪਰਟੀ ਸੈਟ ਕਰਨਾ ਇਹ ਸਾਬਿਤ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿ ਇਹ ਕਲਾਇਂਟ ਉਸਨੂੰ ਵਰਤਦਾ ਹੈ।
ਬਿਲਡਰ ਸੰਦਰਭ ਉਨਾਂ ਪ੍ਰਾਪਰਟੀਜ਼ ਦੀ ਪਹਚਾਣ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਇਸਦੇ ਡਿਫ਼ਾਲਟ ਭਾਗ ਵਿਚਾਰਦੇ ਹਨ। ਸਪਸਟ ਰੂਟ ਪਲਾਨਰ ਜਾਂ ਹੋਰ ਦਿੱਤੇ ਭਾਗ ਉਸ ਵੱਯਵਹਾਰ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹਨ।
ਇਸ ਕੰਫ਼ੀਗਰ ਕੀਤੀ ਇੰਸਟੈਂਸ ਰਾਹੀਂ ਬਿਨਤੀਆਂ ਕਰੋ। ਦੂਜਾ ਕਲਾਇਂਟ ਬਣਾਉਣ ਵਾਲੀ ਨਿਰਭਰਤਾ ਨੂੰ ਅਪਣੀ ਸਹਾਇਤਕ ਫ਼ੈਕਟਰੀ ਜਾਂ ਪਰਾਕਸੀ ਇੰਪੁਟ ਲੋੜਦੀ ਹੈ; ਇਸਦੇ ਕੰਧੇ ਵਰਤਿਆ ਨਾਂ ਕਲਾਇਂਟ ਕੁਝ ਵੀ ਨਹੀਂ ਬਦਲਦਾ।
ਅਸਫਲ ਕਾਰਵਾਈ ਵਿੱਚ ਲਾਈਬਰੇਰੀ ਅਤੇ ਇੰਪੋਰਟਾਂ ਦੀ ਪਹਚਾਣ ਕਰੋ। Commons HttpClient 3, Apache HttpClient 4, HttpClient 5 ਅਤੇ Java ਦੇ java.net.http.HttpClient ਦੇ ਵੱਖ-ਵੱਖ ਕੰਫ਼ੀਗਰੇਸ਼ਨ ਇੰਟਰਫੇਸ ਹਨ। ਪੁਰਾਣੀ ਕਲਾਸ ਰਸਿਪੀ ਉਸ ਕਲਾਇਂਟ ਦੀ ਵੱਖਿਆ ਨਹੀਂ ਕਰ ਸਕਦੀ ਜੋ ਉਸ ਪੀਢ਼ੀ ਦਾ ਕਦੇ ਵੀ ਵਰਤਦਾ ਨਹੀਂ।