Как передать объект даты в SOAP-запрос в Worklight Adapter
Я использую Адаптеры Worklight с HTTP SOAP-запросом к бэкэнд-сервису. Итак, у меня было несколько проблем:
- Как использовать цикл (напр.
for
) создать строку запроса в адаптере? - Как передать строку даты в строку запроса. (Напр.
date
аргумент имеет значение2014-10-12T00:00:00+03:00
");
Я успешно протестировал этот запрос в SoapUI и получил правильный ответ. Когда я пытаюсь создать запрос динамически из аргументов процедуры, результат вызова не удался. Вместо этого, когда данные записываются в запросе как строка, все работает хорошо.
var path = '...';
function procedureName (sessGUID, id, number, date, status) {
var request =
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soa="http://...">
<soapenv:Header/>
<soapenv:Body>
<soa:acceptPayment>
<id>{ id }</id>
<number>{ number }</number>
<date>{ date }</date>
<newStatus>{ status }</newStatus>
<sessGUID>{ sessGUID }</sessGUID>
<loginName></loginName>
<localRequestTime></localRequestTime>
</soa:acceptPayment>
</soapenv:Body>
</soapenv:Envelope>;
var input = {
method : 'post',
returnedContentType : 'xml',
path : path,
body: {
content: request.toString(),
contentType: 'text/xml; charset=UTF-8'
}
};
return WL.Server.invokeHttp(input);
}
1 ответ
Решение
- Прежде всего, не обязательно использовать E4X, в конце вы просто отправляете строку. Вы можете построить свою строку любым удобным для вас способом.
Если вы хотите использовать E4X, вы можете использоватьappendChild()
для того, чтобы построить свой конверт SOAP. Создайте элемент, который вы хотите зациклить, и добавьте его к родительскому элементу. - Ты пробовал вар
d = new Date(); var n = d.toUTCString();
?