从Node.js中的C#工具反序列化byte []

时间:2016-03-31 16:03:17

标签: c# json node.js express serialization

我继承了一个C#工具,它将会议数据的序列化字节数组发送到在线日历应用程序。在线日历使用node.js API。我的问题是序列化的字节数组没有被node.js解析为correclty(IE,在表达式中,req.body对象是空的)。我正在寻找一种发送数据的方法,以便Node.js可以解析,或者Node.js中的解析器可以处理c#字节数组。它是JSON格式的。以下是发送请求的代码:

string json = JsonConvert.SerializeObject(reallyPost, Formatting.None);
byte[] postThisz = Encoding.ASCII.GetBytes(json);
byte[] response = wc.UploadData(siteUrl, postThisz);

目前,我只想尝试记录数据。路线在这里被抓住:

app.post('/remotePost', api.remotePost);

使用此控制器:

module.exports.remotePost = function (req, res) {
  console.log(req);
  console.log(req.body);
  sendJsonResponse(res, 200, "remote posted.");
};

req.body由我的解析中间件填充:

app.use(bodyParser.json());

然而,这无法处理C#程序发送的字节数组。我可以通过找到一个能正确处理C#POST(byte []类型)的解析器,或者找到一个可以发布包含JSON.stringify()返回格式的帖子的C#模块来解决这个问题。

1 个答案:

答案 0 :(得分:2)

建议将编码更改为utf8

 Encoding.UTF8.GetBytes(json);

然后,您还应该在上传之前设置相应的标题

 wc.Headers.Add("Content-Type", "application/json; charset=utf8");