处理来自远程服务器nodejs的响应

时间:2018-10-30 07:34:21

标签: node.js express pdf request

我正在从节点js应用程序向远程服务器发出php POST请求。 来自远程服务器的响应是php生成的“ PDF”文件。

我想将该pdf文件保存到一个位置。

var express = require('express');
var app = express();
var request = require("request");


request({
  uri: "http://103.251.43.139/~ksebuser/orumabills/upload/billview/bill_view_click.php",
  method: "POST",
  form: {
    'office':'5617',
    't_consumer-no_0':'1024'
  }
}, function(error, response, body) {
  const data = new Uint8Array(Buffer.from(response));
fs.writeFile('example.txt', data, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
});

app.listen(3000);
  

这是真实的形式   http://103.251.43.139/~ksebuser/orumabills/upload/billview/

     

我给了值

     

办公室:阿达里马(5617)和消费者编号: 1024

1 个答案:

答案 0 :(得分:0)

request documentation指出:

  

注意:如果需要二进制数据,则应设置encoding: null

由于PDF可以包含二进制数据,因此您应该使用该选项:

request(
  {
    uri:
      "http://103.251.43.139/~ksebuser/orumabills/upload/billview/bill_view_click.php",
    method: "POST",
    form: {
      office: "5617",
      "t_consumer-no_0": "1024"
    },
    encoding : null
  },
  function(error, response, body) {
    fs.writeFile('example.txt', body, err => {
      if (err) throw err;
      console.log("The file has been saved!");
    });
  }
);