这是我第一次使用stackoverflow,我需要一些帮助。 这是问题所在:
我需要使用http(s).request()从postimg.org获取图像,并将其作为dataUrl发送给客户端。假设图像地址是:
"https://s20.postimg.org/lsjlwkdf/how_beautyfull_you_are.jpg"
使用服务器获取映像然后将其发送到客户端的原因 因为来自我的服务器的dataurl是污染的画布不能在浏览器中使用。
问题是,当我从服务器向“s20.postimg.org/lsjlwkdf/how_beautyfull_you_are.jpg”发出http(s)请求时,
GetAddrInfoReqWrap.onlookup
抛出错误:
Error: getaddrinfo ENOTFOUND s20.postimg.org s20.postimg.org:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
当我使用本地主机服务器时,我没有收到此错误,但是当我从云小滴服务器运行它时,我收到错误。 我已经尝试过任何可能找到的方法(native nodejs http(s).request(),fetch-node fetch(),request-node)并且总是遇到同样的问题。最后我明白问题是“getaddrinfo”无法解析主机名“s20.postimg.org”
代码:
dns.lookup(host, function (err, address, family) {
if (err) {
res.status(404).end();
console.log("dns.lookup error:", err);
} else {
console.log( "address:", address, "family:", family );
if ( field.value.split("/")[0] == "http:" ) {
var request = http.request(options, callback );
request.end();
} else if ( field.value.split("/")[0] == "https:" ) {
var request = https.request(options, callback );
request.end();
}
}
});
是否可以在http(s)请求中绕过 getaddrinfo ?
提前谢谢。