Как сделать POST с заголовком XML body / type-type, используя обещание запроса в Node? - PullRequest
0 голосов
/ 28 июня 2018

Мне нужно сделать XML POST (я знаю, не спрашивайте, что это правительство ...), и я не могу заставить его работать с нативным обещанием запроса узла.

Я попытался превратить мою строку XML в буфер, String (), .toString и т. Д. POST работает, если я включаю json: true, поэтому я не думаю, что это проблема с сетью (когда передается строка XML с помощью json) true, он отправляет json как {'variablename': 'XML, который я хочу отправить в качестве тела'})

Вот то, с чем я работаю. Некоторое время я бился головой, любая помощь оценена.

В идеале было бы обещание / асинхронность.

Может быть, мне стоит поискать модуль npm для запроса XMLHttp?

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);
            })

1 Ответ

0 голосов
/ 28 июня 2018

Слава @ 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
};
...