当前位置: 首页 > 面试题库 >

使用请求在Node.js中获取二进制内容

巫马令
2023-03-14
问题内容

我正在尝试使用GET进行二进制数据处理request,结果如下:

var requestSettings = {
    method: 'GET',
    url: url,
};
request(requestSettings, function(error, response, body) {
    // Use body as a binary Buffer
}

但是body总是与预期有几个字节的差异。经过进一步调查,我发现request假定body为字符串,并替换了所有非Unicode字节。

我试图添加

encoding: 'binary'

requestSettings但没有帮助。

如何获取二进制数据?


问题答案:

好吧,经过大量的挖掘,我发现requestSettings应该有:

encoding: null

然后body将是类型Buffer,而不是默认类型string。



 类似资料:
  • 问题内容: 我想从https请求中检索二进制数据。 我发现了一个使用请求方法的 类似问题 ,即使用request 在Node.js中获取二进制内容,是说将 编码 设置为 null 应该可以,但是不能。 编辑:将编码设置为 “二进制” 也不起作用 问题答案: 接受的答案对我不起作用(即,将编码设置为二进制),即使是询问该问题的用户提到它也不起作用。 这是对我有用的东西,摘自:http : //cha

  • 问题内容: 我正在尝试解析使用Python Requests库完成的HEAD请求的结果,但似乎无法访问响应内容。 根据文档,我应该能够从request.Response.text访问内容。这对GET请求对我来说效果很好,但对HEAD请求返回None。 GET请求(有效) 内容= HEAD请求(无内容) 内容= 编辑 好的,我很快就从答案中意识到,HEAD请求不应返回仅内容标头。但这是否意味着,要访

  • 问题内容: 当我使用Express时,我的代码是: 我将如何获得 原始请求正文 ? 问题答案: 编辑2: 主体解析器模块的1.15.2版引入了原始模式,该模式将主体作为Buffer返回。默认情况下,它还会自动处理deflate和gzip解压缩。用法示例: 默认情况下,该对象具有以下默认选项: 如果您希望原始解析器解析以外的其他MIME类型,则需要在此处进行更改。它还将支持通配符匹配,例如或。 注意

  • 问题内容: 我正在创建一个更新程序,该更新程序使用Node模块下载应用程序文件。如何估算剩余文件大小?这是我的代码的一部分: 问题答案: 这应该为您提供所需的总数: 我得到的内容长度为

  • 问题内容: 我有一个名为“ localhost:3000 / returnStat”的服务,该服务应将文件路径作为参数。例如“ /BackupFolder/toto/tata/titi/myfile.txt”。 如何在浏览器上测试此服务?例如,如何使用Express格式化此请求? 问题答案: 我尚未测试您的代码,但其他方法可行 如果您想从请求网址获取路径信息 1.如果您获取的URL参数仍然无法读取

  • 要安装 Ceph 及其依赖软件,你需要参考本手册从 Ceph 软件库下载,然后继续看安装 Ceph 对象存储。 获取软件包 有两种方法获取软件包: 增加源: 增加源是获取二进制包的最简方法,因为多数情况下包管理工具都能自动下载、并解决依赖关系。然而,这种方法要求各 Ceph 节点都能连接互联网。 手动下载: 如果你的环境不允许 Ceph 节点访问互联网,手动下载软件包安装 Ceph 也不复杂。 准