2016-05-15 53 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