我正在使用Windows + Visual Studio代码开发Node JS API。我正在使用Axios将来自NodeJ的其余请求提交给第三方API。
我想检查通过Fiddler从我的Node服务器发送到第三方后端的数据包,但是我一直很难让Axios通过127.0.0.1端口8888进行代理。
理想情况下,设置打开/关闭代理将是一个简单的全局变量。我尝试过的是:
axios.defaults.proxy = { host: "127.0.0.1", port:8888}
axios.defaults.proxy = { host: "127.0.0.1", port:8888, protocol: "http"}
axios.post(url: <api>, {post:data}, {proxy: {host: "127.0.0.1", "8888"} });
以及上述内容的许多不同变体。启用代理后,它将无法完成请求。
答案 0 :(得分:1)
您是否正在尝试使用https
来访问服务器? axios
的问题在于他们似乎无法解决问题。
一种允许您通过Fiddler代理的解决方法是使用HTTPS-over-HTTP隧道。扬·莫拉克(Jan Molak)撰写了this nice article,内容涉及通过https
代理将请求发送到http
服务器的场景。通过Fiddler运行请求时,以下代码对我有用:
const axios = require('axios');
const tunnel = require('tunnel');
const axiosInstance = axios.create({
httpsAgent = tunnel.httpsOverHttp({
host: '127.0.0.1',
port: 8888,
}),
proxy: false,
});
axiosInstance.post(/* ... */);