0
我主要一个ColdFusion开发,已有10多年,但它的时间来做出改变。我正在通过将一些旧的Colfusion 9代码移植到节点js上工作,并且我正在努力连接到第三方API来访问我们公司的数据。移植遗留的ColdFusion代码的Node.js - CFHTTP/request.js
这是连接到外部服务的当前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>
还记得我说过,从CFHTTP移除之后的参数会导致同样的错误?我似乎无法得到这个在节点工作。
我已经使用请求()。形式,请求试图AUTH等()。没有成功,总是相同的NO XML字符串传递错误。
我将非常感谢您的帮助。
嗯,就这么简单。我不知道你可以在节点中命名这样的表单,非常感谢你指向正确的方向,我可以访问数据。 –