0

从对 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”(将“响应”添加到“GetMsgRQ”。是否可以创建/指定 SOAP:Body 而不会发生这种情况?我可以设置整个 SOAP 正文响应将是什么或Salesforce 是否会始终在此处添加“GetMsgRQResponse”和“结果”等附加元素?

提前感谢您对此的任何帮助。我知道我可以使用 HTTP 请求来发送完整的 SOAP 信封,但出于我的要求,我只需要提供响应而不是这样做。

4

1 回答 1

0

我不相信您可以在 Apex 定义的 WebService 方法中直接添加任何类型的 SOAP 标头。

如果您绝对没有其他选择,您可以通过 REST Web 服务(通过 @RestResource 注释)构建您自己的自定义 SOAP 响应,但这是一个非常丑陋的解决方案。

于 2013-07-08T04:55:11.070 回答