我继承了一个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#模块来解决这个问题。
答案 0 :(得分:2)
建议将编码更改为utf8
Encoding.UTF8.GetBytes(json);
然后,您还应该在上传之前设置相应的标题
wc.Headers.Add("Content-Type", "application/json; charset=utf8");