gpt4 book ai didi

javascript - 如何使用 Node 请求默认的图标?

转载 作者:搜寻专家 更新时间:2023-10-31 23:14:47 26 4
gpt4 key购买 nike

给定一个域,我如何使用 Node 请求默认的 favicon?默认的网站图标位置位于 domain/favicon.ico 我可以使用简单的 https.get() 吗?似乎至少有 5 native ways做这个?

目前第一种方法行不通。我得到此代码的 ERR_INVALID_DOMAIN_NAME:

const https = require('https');
const url = 'imdb.com/favicon.io';


https.get(url, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
console.log(data);
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});

如果我将 URL 更改为 https://imdb.com/favicon.ico 我会得到

<p>The document has moved <a href="https://www.imdb.com/favicon.ico">here</a>.</p>

如果我将 URL 更改为 https://www.imdb.com/favicon.ico,我会得到:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://ia.media-imdb.com/images/G/01/imdb/images/favicon-2165806970">here</a>.</p>
</body></html>

最后,如果我将 URL 更改为 https://ia.media-imdb.com/images/G/01/imdb/images/favicon-2165806970,我会得到看起来像一个 blob 或二进制文件或图像。

我如何以编程方式执行此操作?

如果我记得 PHP 有一个知道如何遵循“重定向”的方法,那么 Node 呢?

最佳答案

The default favicon location is at domain/favicon.ico

默认的 favicon path/favicon.ico,但您需要一个绝对 URL (schema://host/path)为了提出请求。

How can I do this programmatically?

如果使用核心 nodejs,您需要在某种递归回调安排中通过 response.headers['location'] 手动遵循重定向。或者,您可以使用模块 requestfollow-redirects .

I get what looks like a blob or binary file or image.

的确,这就是图像。从 response.headers['content-type'] 可以看出,它是 image/x-icon 格式,也称为 ICO ,正如对名为 favicon.ico 的文件所预期的那样。

data += chunk

请注意,因为您连接的是字符串而不是缓冲区,这将导致当前 NodeJS 版本中的图像损坏。它尝试将二进制数据视为 UTF-8,替换未知序列。相反,您可能只想通过管道传输到 fs.WriteStream

关于javascript - 如何使用 Node 请求默认的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56421112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com