Java ಪ್ರಾಕ್ಸಿ ಆಬ್ಜೆಕ್ಟ್ ಒಂದು ಮಾರ್ಗವನ್ನು ವಿವರಿಸುತ್ತದೆ. ನೆಟ್ವರ್ಕಿಂಗ್ ಕ್ಲೈಂಟ್ ಯಾವ ರೀತಿಯ ಮಾರ್ಗಗಳನ್ನು ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ಇನ್ನೂ ನಿರ್ಧರಿಸುತ್ತದೆ. ಲಭ್ಯವಿರುವ ಎಂಡ್ಪಾಯಿಂಟ್ SOCKS ಮಾತನಾಡಿ ಅಪ್ಲಿಕೇಶನ್ java.net.http.HttpClient ಬಳಸುವಾಗ ಇದು ಮುಖ್ಯ.

ಇಲ್ಲಿ ಪರಿಶೀಲಿಸಿದ JDK 25 ಅನುಷ್ಠಾನದಲ್ಲಿ, HTTP ಕ್ಲೈಂಟ್ನ ವಿನಂತಿ ಕೋಡ್ ಆಯ್ಕೆದಾರರಿಂದ HTTP ಅಭ್ಯರ್ಥಿಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. SOCKS ಅಭ್ಯರ್ಥಿ ಅದನ್ನು SOCKS ಮಾತುಕತೆ ನಡೆಸಲು ಒತ್ತಾಯಿಸುವುದಿಲ್ಲ; ಅನುಷ್ಠಾನವು ಪ್ರಾಕ್ಸಿ ಇಲ್ಲದೆ ಮುಂದುವರಿಯಬಹುದು. ಆದ್ದರಿಂದ ಯಶಸ್ವಿ ಪ್ರತಿಕ್ರಿಯೆ ಕಸ್ಟಮ್ ಆಯ್ಕೆದಾರರ SOCKS ನಮೂದು ಬಳಸಲಾಗಿದೆ ಎಂಬುದಕ್ಕೆ ಸಾಕಷ್ಟು ಸಾಕ್ಷ್ಯವಲ್ಲ.

ಮೊದಲು ಸಾಗಣೆಯನ್ನು ಆರಿಸಿ

URLConnection ಆಧಾರಿತ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗೆ, ಸಂಪರ್ಕ ತೆರೆಯುವಾಗ ಪ್ರೋಟೋಕಾಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗೆ ಬೆಂಬಲಿತ ಸ್ಪಷ್ಟ ಪ್ರಾಕ್ಸಿ ನೀಡಬಹುದು:

Proxy route = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("proxy.example", 1080));
URLConnection connection = URI.create("https://service.example/")
    .toURL().openConnection(route);
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);

ಅನುಮತಿಸಲಾದ ಸಾರ್ವಜನಿಕ-ಗುರಿ ಪರೀಕ್ಷೆಗಳಿಗೆ, ನಿಮ್ಮ ಸೇವೆ ಅಥವಾ SOCKS ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿಯಿಂದ ಹೊಂದಿಕೆಯಾಗುವ SOCKS ಎಂಡ್ಪಾಯಿಂಟ್ ಬಳಸಿ. ಇದು ಬೇರೆ ಕ್ಲೈಂಟ್ API, HttpClient.Builder.proxy ನ ಪರ್ಯಾಯ ಕಾಗುಣಿತವಲ್ಲ. HTTPS ಉದ್ದೇಶಿತ ವೆಬ್ಸೈಟ್ ಅನ್ನು ಗುರುತಿಸುವಂತೆ ಗಮ್ಯ URL ಉಳಿಸಿಕೊಳ್ಳಿ.

java.net.http ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬೇಕಾದ ಅಪ್ಲಿಕೇಶನ್ ಬದಲಿಗೆ ಹೊಂದುವ HTTP ಪ್ರಾಕ್ಸಿ ಎಂಡ್ಪಾಯಿಂಟ್ ಬಳಸಬಹುದು, ಮುಂದಿನ SOCKS ಸಂಪರ್ಕವನ್ನು ನಿರ್ವಹಿಸುವ ಅನುಮೋದಿತ ಅಡಾಪ್ಟರ್ ಸೇರಿದಂತೆ. ಅದು ನಿಜವಾದ ಘಟಕ ಮತ್ತು ಇನ್ನೊಂದು ಪ್ರವೇಶ ಮಿತಿಯನ್ನು ಸೇರಿಸುತ್ತದೆ; ಪೋರ್ಟ್ 8080 ಅನ್ನು 1080 ಗೆ ಬದಲಿಸುವುದು ಆ ಅನುವಾದವನ್ನು ನೀಡುವುದಿಲ್ಲ.

ಆಯ್ಕೆ ಮತ್ತು ಸ್ವೀಕಾರವನ್ನು ಗೋಚರವಾಗಿರಿಸಿ

ಆಯ್ಕೆದಾರರ ಫಲಿತಾಂಶ ಮತ್ತು ಕ್ಲೈಂಟ್ ನಿಜವಾಗಿ ತೆರೆಯುವ ಸಂಪರ್ಕ ಎರಡನ್ನೂ ದಾಖಲಿಸಿ. ಮೊದಲನೆಯದು ನೀತಿ ಔಟ್ಪುಟ್ ವಿವರಿಸುತ್ತದೆ; ಎರಡನೆಯದು ಅನುಷ್ಠಾನ ಅದನ್ನು ಸ್ವೀಕರಿಸಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ.

ತೀರ್ಮಾನಗಳನ್ನು ಬಳಸಿದ ರನ್ಟೈಮ್ ಮತ್ತು ಸಾಗಣೆಗೆ ಬಂಧಿಸಿ. ಒಂದು ಸಾಕೆಟ್ ಅನುಷ್ಠಾನ ಬಳಸುವ JVM SOCKS ಗುಣಲಕ್ಷಣಗಳು ಪ್ರತಿ HTTP ಲೈಬ್ರರಿ ಅವುಗಳನ್ನು ಸಂಪರ್ಕಿಸುತ್ತದೆ ಎಂಬ ಭರವಸೆ ಅಲ್ಲ. ಮಾರ್ಗ ಕಡ್ಡಾಯವಾದಾಗ, ತೋರಿಕೆಯಲ್ಲಿ ಯಶಸ್ವಿ ನೇರ ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸುವ ಮೊದಲು ಬೆಂಬಲಿಸದ ಪ್ರಾಕ್ಸಿ ಪ್ರಕಾರವನ್ನು ಪತ್ತೆಹಚ್ಚಬೇಕು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು