节点请求输出与curl输出不同

时间:2016-07-29 15:22:54

标签: node.js curl node-request

我可以使用curl发出请求,获取响应并将其解析为protobuf。但是,在尝试对节点request执行相同操作时,我无法将body参数解析为protobuf,即使我已将其转换为缓冲区。

这是请求应该输出的十六进制转储

00000000: 1088 8080 80f0 fca4 f02c a206 00a2 0600  .........,......
00000010: a206 5408 a7b5 a9a4 e22a 10ff 8ac8 b9e3  ..T......*......
00000020: 2a1a 121a 100a 0e09 2130 0000 0000 0000  *.......!0......
00000030: 107b 18d4 011a 121a 100a 0e09 2130 0000  .{..........!0..
00000040: 0000 0000 107b 18d4 011a 121a 100a 0e09  .....{..........
00000050: 2130 0000 0000 0000 107b 18d4 011a 081a  !0.......{......
00000060: 0612 0408 0110 15a2 0600 a206 00         .............

这是将创建的缓冲区转储到磁盘上并使用xxd将其转储为十六进制

的内容
00000000: 10ef bfbd efbf bdef bfbd efbf bdef bfbd  ................
00000010: efbf bdef bfbd efbf bd2c efbf bd06 00ef  .........,......
00000020: bfbd 0600 efbf bd06 5408 efbf bdef bfbd  ........T.......
00000030: efbf bdef bfbd efbf bd2a 10ef bfbd efbf  .........*......
00000040: bdef bfbd efbf bdef bfbd 2a1a 121a 100a  ..........*.....
00000050: 0e09 2130 0000 0000 0000 107b 18ef bfbd  ..!0.......{....
00000060: 011a 121a 100a 0e09 2130 0000 0000 0000  ........!0......
00000070: 107b 18ef bfbd 011a 121a 100a 0e09 2130  .{............!0
00000080: 0000 0000 0000 107b 18ef bfbd 011a 081a  .......{........
00000090: 0612 0408 0110 15ef bfbd 0600 efbf bd06  ................

由于时间戳的变化(我的服务器在protobuf中发送回来)可能会有一些小差异,但这两个文件都应该是可解析的。

1 个答案:

答案 0 :(得分:0)

好的,request假定您的响应是unicode字符串,删除非unicode字符并删除它,除非您将encoding: null 添加到requestSettings

将所述参数添加到设置中会修复它。