在C#中将对象转换为Json并通过POST发送它会导致损坏的对象?

Hou*_*man 5 javascript c# json bytearray node.js

在C#上,我正在打印我发送到控制台的JSONified字符串,它的内容为

 { "message" : "done", "numSlides" : 1, "slides" : [{ "num" : 1, "key" : "530d8aa855df0c2d269a5a5853a47a469c
52c9d83a2d71d9/1slide/Slide1_v8.PNG" }], "bucket" : "xx.xxxxxxxxxx", "error"
: null, "wedge" : false, "tenant" : null, "name" : null }
Run Code Online (Sandbox Code Playgroud)

然后我这样做将它转换为字节数组并发送它

WebRequest request = WebRequest.Create(Program.api +"/"+ route);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

//Get the request stream
Stream dataStream = request.GetRequestStream();
byte[] byteArray = Encoding.UTF8.GetBytes(myString);
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
Run Code Online (Sandbox Code Playgroud)

在node.js方面,我在console.logging res.body时得到这个:

{ '{ "message" : "done", "numSlides" : 1, "slides" : ': { '{ "num" : 1, "key" : "530d8aa855df0c2d269a5a5853a47a469c52c9d83a2d71d9/1slide/Slide1_v8.PNG" }], "bucket" : "xx.xxxxxxxxxx", "error" : null, "wedge" : false, "tenant" : null, "name" : null ': '' } }
Run Code Online (Sandbox Code Playgroud)

这看起来不像有效的JSON.发生了什么?如何发送和接收正确的数据?

小智 1

我在测试我正在编写的节点服务器时遇到了类似的问题。问题最终出在请求的内容类型上。我相信这也可能是你的问题。

我认为您想要的内容类型是“application/json”。

请参阅这篇文章了解更多信息