我需要进行XML POST(我知道不要问它是政府...),并且我无法使它与本机的节点请求承诺一起工作。
我试图将我的XML字符串转换为缓冲区,String()、. toString等。如果我将json:true转换为POST,那么我认为这不是网络问题(当通过json传递xml字符串时)正确,它会发送一个json,例如{'variablename':'我要作为正文发送的XML字符串'})
这就是我正在使用的。在这里,我一直不休,感谢任何帮助。
理想情况下将是承诺/异步。
也许我应该寻找一个XMLHttp请求npm模块?
var request_promise_native_options = {
method: 'POST',
uri: 'http://requestbin.fullcontact.com/198flbs1',
headers: {
'User-Agent': 'Request-Promise',
'Content-Type': 'text/xml'
//'Content-Length': Buffer.byteLength(my_xml_string) //I've tried multiple ways to use this
},
body: {
my_xml_string //also tried many ways here Buffer, String() etc
},
json: false // automatically stringifys body to json if true
};
request_promise(request_promise_native_options)
.then(function (response) {
console.log("success");
})
.catch(function (err) {
console.log(err);
})
答案 0 :(得分:3)
对@ kevin-b表示感谢,以帮助我了解显而易见的内容。只需删除{}
var request_promise_native_options = {
method: 'POST',
uri: 'http://requestbin.fullcontact.com/198flbs1',
headers: {
'User-Agent': 'Request-Promise',
'Content-Type': 'text/xml'
'Content-Length': Buffer.byteLength(my_xml_string)
},
body: my_xml_string,
json: false // automatically stringifys body to json if true
};