ToB企服应用市场:ToB评测及商务社交产业平台

标题: NodeJS:利用 Axios 实现 HTTP、HTTPS 和 SOCKS5 署理请求 [打印本页]

作者: 来自云龙湖轮廓分明的月亮    时间: 2024-11-23 07:50
标题: NodeJS:利用 Axios 实现 HTTP、HTTPS 和 SOCKS5 署理请求
在一样平常开辟中,网络请求是不可制止的。通过使用署理服务器,可以更好地控制请求的来源、隐蔽 IP 地址,大概绕过网络限定。在本篇文章中,我将分享怎样使用 axios 库联合 HTTP、HTTPS 和 SOCKS5 署理来发送网络请求,并详细介绍实现过程。
预备工作

首先,我们需要确保项目中安装了必要的依赖,包括 axios、http-proxy-agent、https-proxy-agent 和 socks-proxy-agent。可以使用以下命令进行安装:
  1. npm install axios http-proxy-agent https-proxy-agent socks-proxy-agent
复制代码
安装完成后,就可以开始构建代码了。
代码实现

1. 导入必要的模块

我们首先导入 axios 库及相应的署理模块:
  1. import axios from "axios";
  2. import { HttpProxyAgent } from "http-proxy-agent";
  3. import { HttpsProxyAgent } from "https-proxy-agent";
  4. import { SocksProxyAgent } from "socks-proxy-agent";
复制代码
这里我们使用 axios 作为 HTTP 客户端,用它来发送网络请求;而 http-proxy-agent、https-proxy-agent 和 socks-proxy-agent 用于处理差别范例的署理协议。
2. 配置 HTTP 署理

我们通过 HttpProxyAgent 配置 HTTP 署理:
  1. const http = () => {
  2.   const httpAgent = new HttpProxyAgent("http://127.0.0.1:7899");
  3.   httpAxios.defaults.httpAgent = httpAgent;
  4.   httpAxios.defaults.proxy = true;
  5.   httpAxios.get("http://ipinfo.io", {}).then((res) => {
  6.     console.log(res.data);
  7.   });
  8. };
复制代码

3. 配置 HTTPS 署理

对于 HTTPS 请求,我们可以使用 HttpsProxyAgent:
  1. const https = () => {
  2.   const httpsAgent = new HttpsProxyAgent("http://127.0.0.1:7899");
  3.   httpsAxios.defaults.httpsAgent = httpsAgent;
  4.   httpsAxios.defaults.proxy = false;
  5.   httpsAxios.get("https://ipinfo.io", {}).then((res) => {
  6.     console.log(res.data);
  7.   });
  8. };
复制代码

4. 配置 SOCKS5 署理

为了支持 SOCKS5 署理,我们需要使用 SocksProxyAgent:
  1. const socks5 = () => {
  2.   const socks5Agent = new SocksProxyAgent("socks5://127.0.0.1:7898");
  3.   socks5Axios.defaults.httpsAgent = socks5Agent;
  4.   socks5Axios.defaults.proxy = false;
  5.   socks5Axios.get("https://ipinfo.io").then((res) => {
  6.     console.log(res.data);
  7.   }).catch((err) => {
  8.     console.log(err.message);
  9.   });
  10. };
复制代码

5. 实行代码

最后,我们将全部署理请求依次实行:
  1. http();
  2. https();
  3. socks5();
复制代码
完整代码

以下是完整的代码实现:
  1. import axios from "axios";
  2. import { HttpProxyAgent } from "http-proxy-agent";
  3. import { HttpsProxyAgent } from "https-proxy-agent";
  4. import { SocksProxyAgent } from "socks-proxy-agent";
  5. let httpAxios = axios;let httpsAxios = axios;let socks5Axios = axios;const http = () => {
  6.   const httpAgent = new HttpProxyAgent("http://127.0.0.1:7899");
  7.   httpAxios.defaults.httpAgent = httpAgent;
  8.   httpAxios.defaults.proxy = true;
  9.   httpAxios.get("http://ipinfo.io", {}).then((res) => {
  10.     console.log(res.data);
  11.   });
  12. };
  13. const https = () => {
  14.   const httpsAgent = new HttpsProxyAgent("http://127.0.0.1:7899");
  15.   httpsAxios.defaults.httpsAgent = httpsAgent;
  16.   httpsAxios.defaults.proxy = false;
  17.   httpsAxios.get("https://ipinfo.io", {}).then((res) => {
  18.     console.log(res.data);
  19.   });
  20. };
  21. const socks5 = () => {
  22.   const socks5Agent = new SocksProxyAgent("socks5://127.0.0.1:7898");
  23.   socks5Axios.defaults.httpsAgent = socks5Agent;
  24.   socks5Axios.defaults.proxy = false;
  25.   socks5Axios.get("https://ipinfo.io").then((res) => {
  26.     console.log(res.data);
  27.   }).catch((err) => {
  28.     console.log(err.message);
  29.   });
  30. };
  31. http();
  32. https();
  33. socks5();
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4