跳到主要内容

HTTP 请求-二进制响应

二进制数据响应

问题背景

HTTP 请求 中获取二进制 HTTP 响应

解决方案

HTTP 请求 节点默认会将响应主体以字符串形式返回在 msg.payload 中。更改此节点的返回 (Return) 配置,将其设置为二进制缓冲区 (binary buffer),以便在 msg.payload 中以二进制缓冲区的形式返回响应。

示例

HTTP 请求 节点的“返回 (Return)”配置更改为二进制缓冲区 (binary buffer)。 该流程包含三个节点:

http-request-binary-response

示例JSON

[{"id":"871ee927.0d69c8","type":"inject","z":"db204302463e78d0","name":"","repeat":"","crontab":"","once":false,"topic":"","payload":"","payloadType":"date","x":170,"y":360,"wires":[["8ea4e52a.03d678"]]},{"id":"8ea4e52a.03d678","type":"http request","z":"db204302463e78d0","name":"binary http request","method":"GET","ret":"bin","paytoqs":"ignore","url":"http://localhost:18000/binary","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":340,"y":360,"wires":[["70309d0c.4dc504"]]},{"id":"70309d0c.4dc504","type":"debug","z":"db204302463e78d0","active":true,"console":"false","complete":"false","x":520,"y":360,"wires":[]}]

运行结果

如果要获取二进制 HTTP 响应(例如图像文件、ZIP 文件等),并且希望将其作为原始字节处理而不是尝试将其解析为字符串或 JSON 对象,则此配置非常有用。将返回类型设置为“二进制缓冲区”可确保 msg.payload 包含一个 Node.js Buffer 对象,可以对其执行进一步的二进制操作。

http-request-binary-response-result