2016-05-15 26 views
0

剛剛開始使用node-red並且無法將XML加載到JavaScript對象中msg.payload節點紅需要向我的服務器發送post請求。如何使用XML負載以節點紅色進行POST

我的API是尋找以下:

<?xml version="1.0" encoding="UTF-8"?> 
 
    <userRequest> 
 
     <authentication> 
 
      <username>foo</username> 
 
      <password>bar</password> 
 
     </authentication> 
 
     <action>doit</action> 
 
    </userRequest>

但是,如果沒有逃脫XML,我無法得到它加載到該對象。我無法找到正確的方式逃避它。

建議?

到目前爲止,我試圖通過各種方式轉義XML,使其通過節點紅色的JS解析器,但似乎沒有任何工作。節點紅總是抱怨代碼中有錯誤。

有一些輸出XML的例子,但沒有說明如何將POST上的XML負載發送到外部服務器。

回答

2

要POST XML,您需要確保將content-type標頭設置爲application/xml。例如,使用功能節點:

msg.payload = '<?xml version="1.0" encoding="UTF-8"?><userRequest<authentication><username>foo</username><password>bar</password></authentication><action>doit</action></userRequest>'; 
msg.headers = {}; 
msg.headers['content-type'] = 'application/xml'; 
return msg; 
+0

感謝您的提示!該請求現在適用於我嘗試了你的建議後。但事實證明,標題並不需要。問題是我使用的密碼中有轉義字符,我得到的錯誤沒有明確指出。但使用您的請求格式幫助我發現錯誤。 – shanemgrey