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

使用http.request在node.js中获取二进制内容

哈翔
2023-03-14
问题内容

我想从https请求中检索二进制数据。

我发现了一个使用请求方法的 类似问题 ,即使用request
在Node.js中获取二进制内容,是说将 编码 设置为 null 应该可以,但是不能。

options = {
    hostname: urloptions.hostname,
    path: urloptions.path,
    method: 'GET',
    rejectUnauthorized: false,
    encoding: null
};

req = https.request(options, function(res) {
    var data;
    data = "";
    res.on('data', function(chunk) {
        return data += chunk;
    });
    res.on('end', function() {
        return loadFile(data);
    });
    res.on('error', function(err) {
        console.log("Error during HTTP request");
        console.log(err.message);
    });
})

编辑:将编码设置为 “二进制” 也不起作用


问题答案:

接受的答案对我不起作用(即,将编码设置为二进制),即使是询问该问题的用户提到它也不起作用。

这是对我有用的东西,摘自:http :
//chad.pantherdev.com/node-js-binary-http-
streams/

http.get(url.parse('http://myserver.com:9999/package'), function(res) {
    var data = [];

    res.on('data', function(chunk) {
        data.push(chunk);
    }).on('end', function() {
        //at this point data is an array of Buffers
        //so Buffer.concat() can make us a new Buffer
        //of all of them together
        var buffer = Buffer.concat(data);
        console.log(buffer.toString('base64'));
    });
});

编辑: 根据分号的建议更新答案



 类似资料:
  • 问题内容: 我正在尝试使用进行二进制数据处理,结果如下: 但是总是与预期有几个字节的差异。经过进一步调查,我发现假定为字符串,并替换了所有非Unicode字节。 我试图添加 ,但没有帮助。 如何获取二进制数据? 问题答案: 好吧,经过大量的挖掘,我发现应该有: 然后将是类型,而不是默认类型string。

  • 问题内容: 因此,在这段(简化的)代码中,当有人点击我的节点服务器时,我向另一个网站发出GET请求,并将HTML页面标题打印到控制台。工作良好: 但是,在实际应用中,用户可以指定要命中的URL。这意味着我的节点服务器可能正在下载20GB的电影文件或其他文件。不好。content- length报头没有被用来停止它,因为它并不是所有服务器都传输的。然后问题是: 我如何告诉它在收到第一个10KB之后停

  • 问题内容: 我建立了一个HTTP服务器。我正在使用下面的代码来获取请求URL,但未获取完整URL。 我只得到和。 我想获得完整的客户端请求的URL作为或。 谢谢。 问题答案: 从net / http包的文档中: 您的代码的修改后的版本: 输出示例:

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

  • 问题内容: 使用Express框架时,如何在Node中下载URL的内容?基本上,我需要完成Facebook身份验证流程,但是如果没有获取其OAuth令牌URL,就无法做到这一点。 通常,在PHP中,我会使用Curl,但是Node等效项是什么? 问题答案: http://nodejs.org/docs/v0.4.11/api/http.html#http.get

  • 问题内容: 我正在尝试从Firefox扩展程序中下载一些二进制数据。当我尝试将创建的XMLHttpRequest设置为arraybuffer模式时: 错误 被抛出。 还有另一种在Firefox扩展中下载二进制数据的方法吗? 问题答案: 您必须先调用该方法。