0

我正在使用 MobileFirst Platform 6.3,我正在尝试发送以下请求:

var input = {
    method : 'post',
    path : "/create/item.aspx",
    body: {
        contentType:'application/json; charset=UTF-8',
        content: JSON.stringify([{"item": "name"}])
    }
};

var outputObj = WL.Server.invokeHttp(input);

为了简化问题,我尽可能地最小化了请求,基本上在 body.content 中有一个包含数组的字符串会导致一些未知的行为,并且正文不会被发送到后端。

我无法修改后端,因此包装数组或发送不同的输入结构不是一种选择。

有人可以解释一下我的正文内容发生了什么吗?如何阻止 WorkLight 对其进行修改?

4

1 回答 1

0

我已经建立了一个简单的 nodejs 服务器,只是为了查看我从适配器接收到哪些数据,并且一切正常。

我的适配器代码:

    var input = {
    method : 'post',
    returnedContentType : 'plain',
    path : "/mypath",
    body:{
        contentType:"application/json; charset=UTF-8",
        content: JSON.stringify([{"item": "name"}])
    }
};


return WL.Server.invokeHttp(input);

导致服务器输出:

Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     URL :: /
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Method :: POST
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Header :: content-length=17
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Header :: content-type=application/json; charset=UTF-8
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Header :: host=localhost:1111
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Header :: connection=Keep-Alive
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Header :: user-agent=Apache-HttpClient/4.3.4 (java 1.5)
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Cookies >> undefined
Thu Dec 11 2014 11:18:47 GMT-0600 (CST)     Body :: [{"item":"name"}]

问题可能出在您的后端...您从后端收到什么响应?将 returnedContentType : 'plain' 属性添加到您的调用选项并检查从 WL.Server.invokeHttp() 返回的内容

于 2014-12-11T17:22:37.587 回答