Heim > Fragen und Antworten > Hauptteil
Ich möchte den Knoten zum Aufrufen einer API-Schnittstelle verwenden. Wie verwende ich das Anforderungsmodul, um diesen Vorgang auszuführen? Frag Gott. .
Der aktuelle Code lautet wie folgt:
var config = require('./config');
var request = require('request');
var fs = require('fs');
var url = config.host+'/inpidual/doc/ocr';
var file = fs.createReadStream('./WechatIMG5.jpeg');
Var-Optionen = {
url: url,
method: 'POST',
"rejectUnauthorized": false,
form: {
'agent_key': config.agent_key,
'agent_no': config.agent_no,
'doc_type': 'CHN_ID',
'img': file,
// 'has_oss_key': '1'
}
};
request(Optionen, Funktion (Fehler, Antwort, Text) {
if (!error && response.statusCode == 200) {
console.log(body);
// console.log(error);
}
});
代言2017-07-03 11:44:53
文件需要使用 formData 而不是 form:
var options = {
url: url,
method: 'POST',
formData: {
'img': {
value: fs.createReadStream('./WechatIMG5.jpeg')
},
}
};
请注意不同的传输方式 header 中的 content-type 是不同的,对于文件是 multipart/form-data ; 普通的键值对是 application/x-www-form-urlencoded ; json 格式的数据是 application/json。
请仔细阅读官方文档,在 request 中, form 对应的是 application/x-www-form-urlencoded , formData 对应的是 multipart/form-data 。