پراکسیهای HTTP و SOCKS در Axios برای Node.js
پراکسی HTTP را در آداپتور Node HTTP در Axios تنظیم کنید، یا اگر IP انتخابی نقطهٔ پایانی SOCKS است از عامل SOCKS استفاده کنید.
آداپتور Node HTTP در Axios یک شیء پراکسی 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 مذاکره میکند. نسخههای قدیمی مسیرهای متفاوتی داشتهاند، پس نسخهٔ نصبشده مهم است.
URL نوع SOCKS به عامل 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 پردازش پراکسی HTTP در Axios را برای مسیر ارائهشده توسط عامل SOCKS غیرفعال میکند. دادن عامل برای مقصدهای HTTP و HTTPS هر دو طرح را پوشش میدهد. اینجا socks5h DNS مقصد را به سمت SOCKS واگذار میکند؛ سرور انتخابی باید از آن پروتکل پشتیبانی کند.
تفسیر خطاها
اگر سایت وضعیت ناموفق برگرداند، خطای Axios ممکن است شامل پاسخ باشد. در نبود پاسخ، کد خطا و جزئیات اتصال را بررسی کنید. ماژول مفقود، پروتکل پشتیبانینشده یا نسخهٔ ناسازگار Node میتواند پیش از رسیدن درخواست به نقطهٔ پایانی باعث شکست شود.
برای پراکسی HTTP دارای احراز هویت، فیلد auth شیء پراکسی را با اطلاعات ورود اپراتور استفاده کنید. تنظیمات احراز هویت مقصد مربوط به طرف دیگری است.