【问题标题】:POST json file using request module使用请求模块POST json文件
【发布时间】:2018-02-08 06:36:26
【问题描述】:

我计划将下面的 curl API 调用 转换为 node.js,尽管在执行 POST 时我仍然收到 error

curl  -X POST --user user1@customer1:secret http://demo.test.com/controller/actions/38 -F file=@ExportActions.json

以下是使用 request - npm 模块的初始代码,但 API 调用仍然失败。

var requestdata = fs.readFileSync('./ExportActions.json').toString();

var request = require('request');
request.post({
     url: 'https://demo.test.com/controller/actions/38',
     auth: {
        'user': 'user1@customer1',
        'pass': 'secret'
    },
    body: requestdata
}, function(error, response, body){
   console.log(body);
});

每次运行脚本时都会出现以下错误:

Could not import Actions: org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

在使用npm request 模块发布 JSON 文件时是否有任何解决方法

谢谢!

【问题讨论】:

    标签: json node.js curl npm-request


    【解决方案1】:

    您正在尝试通过将文件发布到正文来上传文件。看起来服务器想要一个多部分上传。这可能会更好

    var req = require('request');
    request.post({
       url: 'https://demo.test.com/controller/actions/38',
       auth: {
          'user': 'user1@customer1',
          'pass': 'secret'
      },
    }, function(error, response, body){
         console.log(body);
    });
    
    var form = req.form()
    form.append('file', fs.readFileSync('./ExportActions.json'));
    

    【讨论】:

    • bodyundefined。那是对的吗? API 调用仍然失败。
    • 抱歉,不应该在喝咖啡之前发帖。不,您不需要发送尸体 - 我的意思是删除它。我编辑了答案。
    【解决方案2】:

    您可以使用 Postman 客户端来检查此 api 而不是 curl。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-11
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 2012-04-03
      • 1970-01-01
      相关资源
      最近更新 更多