首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Node请求默认的收藏夹图标?

如何使用Node请求默认的收藏夹图标?
EN

Stack Overflow用户
提问于 2019-06-03 12:22:56
回答 1查看 189关注 0票数 4

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

到目前为止,第一种方法不起作用。我为这段代码获取了ERR_INVALID_DOMAIN_NAME

代码语言:javascript
运行
复制
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,我会得到

代码语言:javascript
运行
复制
<p>The document has moved <a href="https://www.imdb.com/favicon.ico">here</a>.</p>

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

代码语言:javascript
运行
复制
<!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呢?

EN

回答 1

Stack Overflow用户

发布于 2019-06-04 21:03:34

默认的收藏夹图标位置是domain/favicon.ico

默认的收藏夹图标路径是/favicon.ico,但您需要一个绝对URL (schema://host/path)才能发出请求。

如何以编程方式完成此操作?

如果使用核心nodejs,您需要通过response.headers['location']以某种递归回调的方式手动跟踪重定向。或者,您可以使用模块requestfollow-redirects

我得到看起来像blob或二进制文件或图像的内容。

事实上,这就是我们的形象。正如您在response.headers['content-type']中看到的那样,它是image/x-icon格式,也称为ICO,正如favicon.ico文件所预期的那样。

data +=区块

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56421112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档