servicestack,Node.js,servicestack" /> servicestack,Node.js,servicestack" />

如何使Node.js REST客户端能够与ServiceStack JSON服务通信

如何使Node.js REST客户端能够与ServiceStack JSON服务通信,node.js,servicestack,Node.js,servicestack,让一个用Node.js编写的rest客户机能够(通过GET)向基于JSON的ServiceStack服务发送数据,我遇到了一些问题。它给了我一个序列化错误。但是,我已经将相同的JSON(由我的Node.js rest客户端生成)复制并粘贴到通过CURL发送的对ServiceStack服务的调用中,ServiceStack对JSON没有任何问题——再一次……只要它来自CURL 任何人能提出的任何建议或进一步的启示都将不胜感激 谢谢 Tami因此我找到了如何在Node.js中而不仅仅是在CURL(向

让一个用Node.js编写的rest客户机能够(通过GET)向基于JSON的ServiceStack服务发送数据,我遇到了一些问题。它给了我一个序列化错误。但是,我已经将相同的JSON(由我的Node.js rest客户端生成)复制并粘贴到通过CURL发送的对ServiceStack服务的调用中,ServiceStack对JSON没有任何问题——再一次……只要它来自CURL

任何人能提出的任何建议或进一步的启示都将不胜感激

谢谢


Tami

因此我找到了如何在Node.js中而不仅仅是在CURL(向ServiceStack JSON服务发送/接收JSON)中实现上述功能的方法

我做了以下工作:

  • 使用“restler”包作为我的http通信包装器
  • 使用restler的“get()”方法…不要使用“json()”方法
    (下面是代码片段…)

  • 确保在上面填写正确的url和ServiceStack服务和方法的远程DTO

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
    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