Мой код пытается отправить данные в Coldfusion API с моего локального сервера Node.js. Мне удалось связаться с API и пройти аутентификацию через заголовки запросов. Однако у меня возникают трудности с передачей моего объекта JSON, поскольку я не могу правильно получить структуру.
API не принимает параметр JSON модуля запроса, поэтому это самый простой вариант из окна.
API ожидает следующее:
{
'source': {
'customer': {
'customerlogin': 'myusername',
'customerpassword': 'mypassword',
}
}
}
мой код работает, если я жестко закодирую следующий параметр body (от успешного сообщения кем-то еще) в свой пост.
var Jrequest = require('request');
var options = {
uri: 'http://myAPI/customerSSO.json',
headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': something', 'Timestamp': timestamp},
method: 'POST',
body: 'source=%7B%0D%0A++%22customer%22%3A+%7B%0D%0A++++%22customerlogin%22%3A+%22myusername%22%2C%0D%0A++++%22customerpassword%22%3A+%22mypassword%22%2C%0D%0A%09%22success%22%3A+%22%22%0D%0A++%7D%0D%0A%7D' // Working
};
Jrequest(options, function (error, response, body){
res.send(body);
});
Если я отправляю JSON другими способами, например json.stringify(), он отклоняется на том основании, что "источник необходим, но не определен".
Итак, я полагаю, что мой вопрос: в Node.js как превратить JSON во что-то похожее на это
'source=%7B%0D%0A++%22customer%22%3A+%7B%0D%0A++++%22customerlogin%22%3A+%22myusername%22%2C%0D%0A++++%22customerpassword%22%3A+%22mypassword%22%2C%0D%0A%09%22success%22%3A+%22%22%0D%0A++%7D%0D%0A%7D'
или я пропустил еще один вариант?
Спасибо за любую помощь и извинения, если я использовал неправильную терминологию.