curl -F POST 请求翻译

Posted

技术标签:

【中文标题】curl -F POST 请求翻译【英文标题】:Curl -F POST request translation 【发布时间】:2017-11-28 17:49:11 【问题描述】:

这个 cURL 请求的 HTTP 等价物是什么?我尝试翻译,但无法将文件正确传递给 API。

$ curl -F "file=@test.txt" https://xxxxxx

我试过了:

const formData = 
  file: 'pathToFile'


request
  .post(
    url: 'xxxxxx',
    form: formData
  )
  .on('response', (response) => 
    console.log(response);
  );

这给了我一个 5xx 服务器错误 ~ 文件参数未定义。

我将如何在 Node.js 中执行此操作?我正在使用Request

【问题讨论】:

【参考方案1】:

Doc 表示使用fs.createReadStream(...) 传递文件:

var formData = 
  my_file: fs.createReadStream(__dirname + '/test.txt'),
;
request.post(url:'http://service.com/upload', formData: formData, function optionalCallback(err, httpResponse, body) 
  if (err) 
    return console.error('upload failed:', err);
  
  console.log('Upload successful!  Server responded with:', body);
);

另外,选项是formData,而不是form。除非我们说的是不同的版本。

另外,还有node-fetch。

【讨论】:

以上是关于curl -F POST 请求翻译的主要内容,如果未能解决你的问题,请参考以下文章

记一次curl post请求数据被截断问题处理

curl发送get请求带param

curl发送get和post请求

php curl模拟post请求提交数据样例总结

端口 Vimeo 上传 PHP POST 请求

curl模拟post发送没反应