HTTP 请求-二进制响应
二进制数据响应
问题背景
从 HTTP 请求 中获取二进制 HTTP 响应
解决方案
HTTP 请求 节点默认会将响应主体以字符串形式返回在 msg.payload 中。更改此节点的返回 (Return) 配置,将其设置为二进制缓冲区 (binary buffer),以便在 msg.payload 中以二进制缓冲区的形式返回响应。
示例
将 HTTP 请求 节点的“返回 (Return)”配置更改为二进制缓冲区 (binary buffer)。
该流程包含三个节点:
注入节点: 配置为每当触发时,发送一个空消息,以触发 HTTP 请求。HTTP 请求节点: 发送 GET 请求到 http://localhost:18000/binary。关键在于,该节点的“返回 (Return)”选项被设置为“二进制缓冲区 (binary buffer)”。日志输出节点: 显示 msg.payload 的内容。

示例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 对象,可以对其执行进一步的二进制操作。
