使用node.js中的soap模块在客户端中添加soap标头

时间:2014-09-09 09:19:05

标签: xml node.js soap salesforce

我对salesforce非常陌生,并尝试创建一个SOAP客户端,该客户端将连接并从salesforce获取特定潜在客户的详细信息。

我正在消费伙伴wsdl。

截至目前,我可以使用合作伙伴wsdl创建客户端。

我已设置this

中给出的会话标头

但是,当我尝试获取某些信息时,它会给出与会话标题相关的错误

   <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sf="urn:fault.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>sf:INVALID_SESSION_ID</faultcode>
         <faultstring>INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session</faultstring>
         <detail>
            <sf:UnexpectedErrorFault xsi:type="sf:UnexpectedErrorFault">
               <sf:exceptionCode>INVALID_SESSION_ID</sf:exceptionCode>
               <sf:exceptionMessage>Invalid Session ID found in SessionHeader: Illegal Session</sf:exceptionMessage>
            </sf:UnexpectedErrorFault>
         </detail>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

我正在设置像这样的会话标题

var sheader = {
                        SessionHeader : {
                            sessionId: result.result.sessionId
                        }
                    };

                    client.addSoapHeader(sheader);

我正在使用soap节点模块来创建SOAP客户端,该客户端将会话标头设置为this

现在我的问题是从哪里可以获得这三个可选信息,即

  • 名称未知参数(可能只是一个空字符串)
  • 命名空间 xml命名空间的前缀
  • xmlns URI

考虑到我是SOAP和Salesforce的新手,任何指导都会有所帮助。

1 个答案:

答案 0 :(得分:4)

替换此client.addSoapHeader(sheader,"","tns","");

client.addSoapHeader(sheader,"","tns","urn:partner.soap.sforce.com");