我正在尝试使用axios和代理服务器进行https调用:
const url = "https://walmart.com/ip/50676589"
var config = { proxy: { host: proxy.ip, port: proxy.port } }
axios.get(url, config)
.then(result => {})
.catch(error => {console.log(error)})
我使用的代理服务器都在美国,高度匿名,支持HTTP和HTTPS。
我收到此错误:
{错误:写入EPROTO 140736580649920:错误:140770 FC:SSL例程:SSL23_GET_SERVER_HELLO:未知协议:../deps/openssl/openssl/ssl/s23_clnt. c:794:
为了确保问题出在axios上而不是代理上,我尝试了以下方法:
卷边-x 52.8.172.72:4444-L 'https://www.walmart.com/ip/50676589'
这完全工作得很好。
我如何配置axios以使用代理和https URL?
8条答案
按热度按时间ecbunoof1#
如果使用https代理服务器,Axios https代理服务器支持将被中断。请尝试使用http通过httpsProxyAgent传递代理服务器。
或者,Axios的一个分支包含以下内容:axios-https-proxy-fix,但我推荐第一种方法,以确保Axios的最新更改。
vbkedwbf2#
试试这个,我喜欢.
第一个
然后
cidc1ykv3#
您可以通过查看此问题来解决此问题
在这个解决方案中,使用http(s)代理代替使用代理接口。对于它,解决方案使用本地节点模块
https-proxy-agent
。要使其正常工作,代理属性必须等于false。
ojsjcaue4#
https-proxy-agent
和node-tunnel
解决方案确实对我有效,但是它们都不支持使用NO_PROXY的条件代理。我发现global-agent是我的最佳解决方案,因为它修改了核心http和https对象,并将自动应用于任何使用它们的库,包括
axios
、got
、request
等。用法很简单。
将
import 'global-agent/bootstrap';
添加到服务器的入口点(index.ts
)。使用这些环境变量运行,并确保HTTP_PROXY、HTTPS_PROXY不在环境中。
这就是我最终使用它的原因。
ipakzgxi5#
我知道这是一个老职位,但我希望这个解决方案节省时间的任何人面临的SSL问题与
Axios
。7ivaypg96#
尝试在URL中明确指定端口:
如果您还需要HTTPS-over-HTTP隧道,您可以在this article中找到解决方案。
希望这能有所帮助,
扬
mf98qq947#
这个错误是因为axios试图通过https代理您的请求(它从您的url获取),有这个票证跟踪它:https://github.com/axios/axios/issues/925
eufgjt7s8#
上周(2020年2月),我更新了依赖项,试图找出服务停止的原因,为此我损失了一天的工作。
axios-https-proxy-fix
将导致Axios无限期挂起,而不会超时或引发与npm中其他库冲突的错误。使用节点隧道(https://github.com/koichik/node-tunnel)创建代理也可以工作。