Node.js ਲਈ Axios ਵਿੱਚ HTTP ਅਤੇ SOCKS ਪ੍ਰੌਕਸੀ
Axios ਦੇ Node HTTP ਅਡੈਪਟਰ ਵਿੱਚ HTTP ਪ੍ਰੌਕਸੀ ਸੈੱਟ ਕਰੋ ਜਾਂ ਚੁਣਿਆ IP SOCKS ਐਂਡਪੁਆਇੰਟ ਹੋਵੇ ਤਾਂ SOCKS ਏਜੰਟ ਵਰਤੋ।
Axios ਦਾ Node HTTP ਅਡੈਪਟਰ ਹੋਸਟ ਅਤੇ ਅੰਕਾਂ ਵਾਲੇ ਪੋਰਟ ਦਾ HTTP ਪ੍ਰੌਕਸੀ ਆਬਜੈਕਟ ਲੈਂਦਾ ਹੈ:
import axios from 'axios';
const response = await axios.get('https://example.com/', {
adapter: 'http',
proxy: {
protocol: 'http',
host: '203.0.113.10',
port: 8080,
},
timeout: 15000,
});
console.log(response.status);
ਦਸਤਾਵੇਜ਼ੀ ਐਂਡਪੁਆਇੰਟ ਨੂੰ ਆਪਣੀ ਸੇਵਾ ਜਾਂ HTTP ਪ੍ਰਾਕਸੀ ਸੂਚੀ ਦੀ HTTP ਐਂਟਰੀ ਨਾਲ ਬਦਲੋ। ਇਹ ਉਦਾਹਰਨਾਂ Node ਵਰਤਦੀਆਂ ਹਨ; ਬ੍ਰਾਊਜ਼ਰ ਦਾ Axios ਇਨ੍ਹਾਂ ਵਿਕਲਪਾਂ ਨਾਲ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਨੈੱਟਵਰਕ ਪ੍ਰੌਕਸੀ ਨਹੀਂ ਚੁਣ ਸਕਦਾ। host ਖੇਤਰ ਵਿੱਚ URL ਸਕੀਮ ਤੋਂ ਬਿਨਾਂ ਪਤਾ ਆਉਂਦਾ ਹੈ।
ਪ੍ਰੌਕਸੀ ਆਬਜੈਕਟ ਦਾ protocol ਉਸ ਦੇ ਲਿਸਨਰ ਨੂੰ ਦੱਸਦਾ ਹੈ। Axios 1.21.0 ਵਿੱਚ Node HTTP ਅਡੈਪਟਰ HTTPS ਟੀਚੇ ਲਈ CONNECT ਵਰਤਦਾ ਹੈ ਅਤੇ ਫਿਰ ਟਨਲ ਰਾਹੀਂ ਅਸਲ ਸਰਵਰ ਨਾਲ TLS ਤੈਅ ਕਰਦਾ ਹੈ। ਪੁਰਾਣੀਆਂ ਰਿਲੀਜ਼ਾਂ ਨੇ ਵੱਖਰੇ ਪ੍ਰੌਕਸੀ ਰਸਤੇ ਵਰਤੇ ਹਨ, ਇਸ ਲਈ ਸਥਾਪਤ ਵਰਜ਼ਨ ਅਹਿਮ ਹੈ।
SOCKS URL ਲਈ SOCKS ਏਜੰਟ ਚਾਹੀਦਾ ਹੈ
HTTP ਪ੍ਰੌਕਸੀ ਆਬਜੈਕਟ SOCKS ਨਹੀਂ ਚੁਣਦਾ। ਅਨੁਕੂਲ ਏਜੰਟ ਵਰਤੋ:
npm install [email protected] [email protected]
import axios from 'axios';
import { SocksProxyAgent } from 'socks-proxy-agent';
const agent = new SocksProxyAgent('socks5h://203.0.113.10:1080');
try {
const response = await axios.get('https://example.com/', {
adapter: 'http',
httpAgent: agent,
httpsAgent: agent,
proxy: false,
timeout: 15000,
});
console.log(response.status);
} finally {
agent.destroy();
}
proxy: false SOCKS ਏਜੰਟ ਦੇ ਦਿੱਤੇ ਰਸਤੇ ਲਈ Axios ਦੀ HTTP ਪ੍ਰੌਕਸੀ ਕਾਰਵਾਈ ਬੰਦ ਕਰਦਾ ਹੈ। HTTP ਅਤੇ HTTPS ਦੋਵੇਂ ਮੰਜ਼ਿਲਾਂ ਲਈ ਏਜੰਟ ਦੇਣ ਨਾਲ ਦੋਵੇਂ ਸਕੀਮਾਂ ਆ ਜਾਂਦੀਆਂ ਹਨ। ਇੱਥੇ socks5h ਮੰਜ਼ਿਲ ਦਾ DNS SOCKS ਪਾਸੇ ਸੌਂਪਦਾ ਹੈ; ਚੁਣੇ ਸਰਵਰ ਨੂੰ ਉਹ ਪ੍ਰੋਟੋਕੋਲ ਸਮਰਥਿਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਨਾਕਾਮੀਆਂ ਸਮਝਣਾ
ਵੈੱਬਸਾਈਟ ਅਸਫਲ ਸਟੇਟਸ ਦੇਵੇ ਤਾਂ Axios ਗਲਤੀ ਵਿੱਚ ਜਵਾਬ ਹੋ ਸਕਦਾ ਹੈ। ਜਵਾਬ ਨਾ ਹੋਵੇ ਤਾਂ ਗਲਤੀ ਕੋਡ ਅਤੇ ਕਨੈਕਸ਼ਨ ਵੇਰਵੇ ਵੇਖੋ। ਮੋਡੀਊਲ ਗਾਇਬ, ਅਸਮਰਥਿਤ ਪ੍ਰੋਟੋਕੋਲ ਜਾਂ ਅਨੁਕੂਲ ਨਾ ਹੋਣ ਵਾਲਾ Node ਵਰਜ਼ਨ ਬੇਨਤੀ ਐਂਡਪੁਆਇੰਟ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਨਾਕਾਮ ਹੋ ਸਕਦਾ ਹੈ।
ਪ੍ਰਮਾਣੀਕਰਨ ਵਾਲੇ HTTP ਪ੍ਰੌਕਸੀ ਲਈ ਆਬਜੈਕਟ ਦੇ auth ਖੇਤਰ ਵਿੱਚ ਪ੍ਰਬੰਧਕ ਦੀ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਵਰਤੋ। ਮੰਜ਼ਿਲ ਦੀਆਂ ਪ੍ਰਮਾਣੀਕਰਨ ਸੈਟਿੰਗਾਂ ਦੂਜੇ ਪੱਖ ਲਈ ਹਨ।