وكلاء HTTP وSOCKS في Axios لـ Node.js
اضبط وكيل HTTP في محوّل Node HTTP في Axios، أو استخدم عامل SOCKS إذا كان IP المختار نقطة نهاية 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 طلب CONNECT لوجهة HTTPS، ثم يتفاوض على TLS مع الخادم الأصلي عبر النفق. استخدمت الإصدارات القديمة مسارات وكيل مختلفة، لذلك تهم النسخة المثبتة.
عنوان 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 في كائن الوكيل ببيانات الاعتماد التي يوفرها المشغّل. إعدادات مصادقة الوجهة تخص طرفًا مختلفًا.