私はColdfusionの開発者で、10年以上も前から変更を加えています。古いColfusion 9コードをノードjに移植する作業をしています。私は、当社のデータにアクセスするために第三者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を使用してエンドポイントと対話しています。ここで私は、コード使用していますされています。私はCFHTTPからポストパラメータを削除すると、同じエラーが発生することを言ったとき
<?xml version="1.0"?>
<response><status>FAILURE</status><message>No XML string passed</message></response>
覚えておいてください:
は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)
}) ;
これは、その後、次のエラーを返しますか?私はこれをノードの中でまったく動作させることはできないようです。
私はrequest()。form、request()。authなどを使用してみましたが、成功しませんでした。常にNO XML STRING PASSEDエラーです。
私は非常に助けに感謝します。
まあ、そのシンプルに。私はノードの中でこのようなフォームに名前をつけることができないことを知りませんでした。正しい方向を指してくれてありがとう、データにアクセスできます。 –