我正在编写一个节点应用程序来向外部URL发出https请求。我是公司代理的背后,我已经设置了
>npm config set proxy http://proxy.sample.example.org:8080
>npm config set https-proxy http://proxy.sample.example.org:8080
我可以毫无问题地下载节点依赖项。但是,当我尝试点击外部URL时,会引发以下错误。
{ Error: getaddrinfo ENOTFOUND example.net example.net:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'example.net',
host: 'example.net',
port: 443 }
这同样适用于google.com。代码如下。
var request = require('request');
request.get(
{
url : connUrl,//This is set to be https://example.net
},function (error, response, body) {
//Print response code
console.log(body);
console.log(error);
});
有人可以建议我出错的地方
答案 0 :(得分:0)
对于Requests模块,您可以使用proxy
选项设置代理。
试试这样的事情,
request.get({
proxy: "proxy",
url : connUrl,//This is set to be https://example.net
},function (error, response, body) {
//Print response code
console.log(body);
console.log(error);
});
或者,您也可以设置http_proxy
和/或https_proxy
环境变量。
答案 1 :(得分:0)
使用用户名和密码设置npm代理。 在此方案中安全地将密码设置为字母数字 (在大多数企业环境中使用用户名和密码设置代理)
npm config set proxy http://username:password@10.81.82.100:80
npm config set https-proxy https://username:password@10.81.82.100:80
设置没有用户名和密码的npm代理
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
添加回答@Malice,使用环境变量设置临时代理
set http_proxy=http://username:password@10.81.82.100:80
set https_proxy=https://username:password@10.81.82.100:80