如何在Worklight Adapter中将日期对象传递给SOAP请求

时间:2014-10-29 21:59:32

标签: soap ibm-mobilefirst worklight-adapters

我将带有HTTP SOAP请求的Worklight Adapters用于后端服务。所以,我有几个问题:

  1. 如何使用循环(例如for)在Adapter?中创建请求字符串。
  2. 如何将日期字符串传递给请求字符串。 (例如date参数的值为“2014-10-12T00:00:00+03:00”);
  3. 我已成功在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 个答案:

答案 0 :(得分:1)

  1. 首先,它不是必须使用E4X,最后你只是发送一个字符串。您可以以任何您想要的方式构建字符串 如果您确实想使用E4X,可以使用appendChild()来构建SOAP信封。创建要循环的元素并将其附加到其父元素。
  2. 您是否尝试过var d = new Date(); var n = d.toUTCString();