向特定Web服务发出GET请求时,Axios挂起

时间:2020-07-31 15:21:30

标签: node.js web-scraping axios

我正在尝试构建一个Web抓取服务,该服务将获取一些可在我的应用程序中使用的数据。我在Axios上使用NodeJS。问题是,我在使用一种Web服务时遇到一些特别的困难,我想知道自己是否做错了什么。我遇到的问题是,Web服务似乎从未向我的应用程序返回任何数据,而请求只是挂起。我使用Axios-Curlirize通过获取cURL命令并在Terminal和Postman中使用相同的命令来调试问题,在两种情况下,请求都几乎立即返回。我的请求不是循环的,所以我认为我不会受到DDoS防护的打击,而我使用的完全相同的方法也可以与我尝试使用的其他API一起使用。有谁知道会发生什么?这是我的代码段,尽管这是相当标准的:

return await axios.get(url, { headers: headers})
            .then(() => {
                console.log("done")
            })
            .catch(err => failed(err));

console.log和函数failed都没有被调用,我在其中放置了断点来检查;函数failed的内容无关紧要,因为从不调用该函数。我已经在Node 14.7.0和Node 12.18.3LTS上进行过尝试,但在这两个版本上均不起作用。

这是来自Axios-Curlirize的cURL请求:

curl -X GET -H "accept-language:en-CA,en-GB;q=0.9,en-US;q=0.8,en;q=0.7" -H "dnt:1" -H "referer:https://www.google.com" -H "upgrade-insecure-requests:1" -H "user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36" -H "cookie-control:no-cache" -H "cache-control:max-age=0" -H "pragma:no-cache" "https://www.famousfootwear.com/stores/product/LocateCartAndNewVariantNearby?zipCode=98662&radius=25&variantToAdd=70094-110-07"

此cURL命令在终端机和邮递员中正常运行,但在我的应用程序中则无效。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

弄清楚了。远程网站仅支持HTTP / 2,而Axios仅支持HTTP1.1。猜猜我要找到Axios以外的其他解决方案。