HTTP և SOCKS պրոքսիներ Axios-ում՝ Node.js-ի համար
Կարգավորեք HTTP պրոքսի Axios-ի Node HTTP ադապտերում կամ օգտագործեք SOCKS գործակալ, եթե ընտրված IP-ն 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-ը անջատում է Axios-ի HTTP պրոքսի մշակումը SOCKS գործակալի տրամադրած երթուղու համար։ Գործակալը HTTP և HTTPS նպատակակետերի համար տալն ընդգրկում է երկու սխեման։ Այստեղ socks5h-ը նպատակակետի DNS-ը փոխանցում է SOCKS կողմին․ ընտրված սերվերը պետք է աջակցի այդ արձանագրությանը։
Խափանումների մեկնաբանում
Axios-ի սխալը կարող է պարունակել պատասխան, երբ կայքը վերադարձրել է անհաջող կարգավիճակ։ Պատասխանի բացակայության դեպքում ստուգեք սխալի կոդը և կապի մանրամասները։ Բացակայող մոդուլը, չաջակցվող արձանագրությունը կամ անհամատեղելի Node տարբերակը կարող են խափանում առաջացնել՝ մինչև հարցումը հասնի վերջնակետին։
Նույնականացմամբ HTTP պրոքսիների համար օգտագործեք օբյեկտի auth դաշտը՝ օպերատորի տրամադրած մուտքի տվյալներով։ Նպատակակետի նույնականացման կարգավորումները վերաբերում են այլ կողմի։