我正在向API提交图片。
当我进入邮递员时,我可以提交给API并正常工作:
curl -X POST \
https://myURL.com \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'stringPart=string' \
-F myfile.jpg=@/path/to/file/myfile.jpg
我的代码如下:
const request = require("request");
require('request-to-curl');
const fs = require("fs");
var FormData = require('form-data');
let url = 'https://myURL.com';
let headers = {
'content-type': 'multipart/form-data'
};
const formData = {
// Pass a simple key-value pair
stringPart: 'string',
'myfile.jpg': fs.createReadStream(__dirname + '/myfile.jpg'),
};
request.post({url:url, headers: headers, formData: formData}, function optionalCallback(err, httpResponse, body) {
console.log(httpResponse.request.req.toCurl());
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
});
这从服务器获取错误。 输出的curl语句看起来像这样,因为它在页面上显示,所以我已经切断了图像。
curl 'https://myURL.com' \
-H 'content-type: multipart/form-data; boundary=--------------------------798817746202249113209224' \
--data-binary $'----------------------------798817746202249113209224\r\nContent-Disposition: form-data; name="stringPart"\r\n\r\nstring\r\n----------------------------798817746202249113209224\r\nContent-Disposition: form-data; name="myfile.jpg"; filename="myfile.jpg"\r\nContent-Type: image/jpeg\r\n\r\n\ufffd\ufffd\ufffd\ufffd\x00\x10JFIF\x00\x01\x01\x00\x00H\x00H\x00\x00\ufffd\ufffd\x00XExif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x02\x01\x12\x00\x03\x00\x00\x00\x01\x00\x01\x00\x00\ufffdi\x00\x04\x00\x00\x00\x01\x00\x00\x00&\x00\x00\x00\x00\x00\x03\ufffd\x01\x00\x03\x00\x00\x00\x01\x00\x01\x00\x00\ufffd\x02\x00\x04\x00\x00\x00\x01\x00\x00\x01\ufffd\x03\x00\x04\x00\x00\x00\x01\x00\x00\x02\ufffd\x00\x00\x00\x00\ufffd\ufffd\x008Photoshop 3.0\x008BIM\x04\x04\x00\x00\x00\x00\x00\x008BIM\x04%
...持续了一段时间。
如何获取代码以匹配有效的curl语句? 谢谢。