从对SOAP请求的测试到我在Salesforce中创建的Web服务,我注意到返回的响应格式如下。
注意我调用的请求函数是GetMsgRQ
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://soap.sforce.com/schemas/class/MyIntegrationServices">
<soapenv:Body>
<GetMsgRQResponse>
<result>
<acctId>001J000000leVpEIAU</acctId>
<acctName>MyTest</acctName>
</result>
</lGetMsgRQResponse>
</soapenv:Body>
</soapenv:Envelope>
与此相关我想知道是否可以添加SOAP:Header? 另外我注意到响应创建了一个元素“GetMsgRQResponse”(将“Response”添加到“GetMsgRQ”。是否可以创建/指定SOAP:Body而不会发生这种情况?我可以设置整个SOAP正文响应或者Salesforce会不会在这里添加“GetMsgRQResponse”等附加元素和“结果”?
提前感谢您提供任何帮助。我知道我可以使用HTTP请求发送完整的SOAP信封但是根据我的要求,我需要提供响应而不是这样做。
答案 0 :(得分:0)
我不相信你可以在Apex定义的WebService方法中直接添加任何类型的SOAP头。
如果您绝对没有其他选择,您可以通过REST Web服务(通过@RestResource注释)构建自己的自定义SOAP响应,但这是一个非常难看的解决方案。