0

我需要制作一个 XML POST(我知道不要问它是政府......),我无法让它与原生节点请求承诺一起工作。

我尝试将我的 XML 字符串转换为缓冲区、String()、.toString 等。如果我打开 json:true 则 POST 有效,所以我认为这不是网络问题(当传递带有 json true 的 xml 字符串时,它会发送像 { 'variablename': 'stringed XML that I want to send as body' } 之类的 json

这是我正在使用的。我已经在这里敲了一段时间的头,任何帮助表示赞赏。

理想情况下是承诺/异步。

也许我应该寻找一个 XMLHttp request 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);
            })
4

1 回答 1

5

感谢@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
};
于 2018-06-28T19:48:27.840 回答