TWr*_*ght 2 node.js servicestack
我在使用Node.js编写的休眠客户端能够将数据(通过GET)发送到基于ServiceStack JSON的服务时遇到问题.它给了我一个序列化错误.但是,我已经将相同的JSON(由我的Node.js rest客户端生成)复制并粘贴到通过CURL发送的ServiceStack服务调用中,而ServiceStack没有出现JSON问题 - 再次...仅作为只要它来自CURL.
任何指针或任何人可以进一步启发的启示将不胜感激!
谢谢,
塔米
所以我想出了如何在Node.js中实现上述工作,而不仅仅是在CURL中(向ServiceStack JSON服务发送/接收JSON).
我做了以下事情:
使用restler的"get()"方法...不要使用"json()"方法
(代码片段如下......)
var obj = {};
obj.objectName = 'foo';
obj.foos = [{firstname: 'foo1', lastname: 'foo-you'}, {firstname: 'foo2', lastname: 'foo-you-2'}];
var json = JSON.stringify(obj);
var options = {
method: "get",
data: json,
headers: {'Content-type': 'application/json', 'Accept': 'application/json'}
};
rest.get('http://localhost/servicestack-api/getmethod', options).
on('complete', function(data, response){
console.log(data);
console.log(response.statusCode);
});
Run Code Online (Sandbox Code Playgroud)确保使用正确的URL和远程DTO填写上面的ServiceStack服务和方法
FYI
如果您的json没有在ServiceStack中序列化到远程DTO,那么测试的一种快速方法是将存储在上面"json"变量中的json复制并粘贴到curl命令中,以查看它是否以这种方式正确序列化.
(下面的样本卷曲片段......)
这是我最初做的(见原始问题)试图解决序列化问题.它帮助我将问题隔离到restler/Node.js端,这样我就可以进行上面看到的修改 - 即不使用restler的"json()"方法.
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X GET -d '{"foos":[{"firstname":"foo1","lastname":"foo-you"}, {"firstname": "foo2", "lastname": "foo-you-2"}],"objectName": "foo"}' http://localhost/servicestack-api/getmethod
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |