Я являюсь основным разработчиком Coldfusion уже более 10 лет, но пришло время внести изменения. Я работаю над переносом некоторого старого кода Colfusion 9 на node js, и я изо всех сил пытаюсь подключиться к стороннему API для доступа к данным для нашей компании.
Это текущий код Coldfusion, который подключается к внешней службе:
<cfsavecontent variable="thiscontent">
<post>
<username>[email protected]</username>
<password>Pa$$w0rd</password>
</post>
</cfsavecontent>
<cfhttp url="https://API.ENDPOINT" method="post" result="httpResponse" >
<cfhttpparam type="FormField" name="xml" value="#Trim(thiscontent)#" />
</cfhttp>
Этот код выполняет поиск и возвращает ожидаемый объект XML из службы. Однако интересно то, что если я удалю параметр 'method = "post"', я получаю ту же ошибку, что и при попытке подключиться к узлу, подробнее об этом через секунду.
Для узла я использую express.js для взаимодействия с конечной точкой. Вот код, который я использую:
reqOpts = {
url: 'http://API.ENDPOINT',
method: 'post',
headers: {
'Content-Type': 'application/xml'
},
body: '<post><username>[email protected]</username><password>Pa44w0rd</password></post>'
}
var getNew = request(reqOpts, function(err, resp, body){
console.log(body)
}) ;
Затем возвращается следующая ошибка:
<?xml version="1.0"?>
<response><status>FAILURE</status><message>No XML string passed</message></response>
Помните, я сказал, что удаление параметра post из cfhttp вызывает ту же ошибку? Кажется, я вообще не могу заставить это работать в узле.
Я безуспешно пытался использовать request (). Form, request (). Auth и т. Д., Всегда одна и та же ошибка NO XML STRING PASSED.
Буду очень признателен за любую помощь.