При вызове SOAP API я получаю следующую ошибку:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">
a:ActionNotSupported
</faultcode>
<faultstring xml:lang="en-US">
The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
</faultstring>
</s:Fault>
</s:Body>
</s:Envelope>
Мой код находится в скрипте Google Apps и выглядит примерно так:
var apiAuthParams = {
'method' : 'post',
'contentType' : 'text/xml',
'payload' : apiAuthSoapRequest,
'muteHttpExceptions': true
};
var apiAuthResponse = UrlFetchApp.fetch(apiAuthUrl, apiAuthParams);
, где apiAuthUrl
- это URL-адрес запроса (и я трижды проверил его правильность!), А apiAuthSoapRequest
- это запрос.
Если я отправлю точно такой же запрос через SOAP UI для проверки его с тем же целевым URL-адресом, он будет работать нормально, поэтому я не понимаю, что отличает его при использовании GAS? Я регулярно выполняю SOAP-звонки таким образом, и ранее не сталкивался с проблемой.