我正在尝试从发送POST请求时收到的服务器读取响应。查看fiddler,它说这是一个JSON响应。如何使用C#Winforms将其解码为普通字符串,最好不使用外部API。如果您需要,我可以提供额外的代码/提琴手结果。
小提琴和乱语图片:
我在下面的代码中尝试阅读流程时出现了乱码:
Stream sw = requirejs.GetRequestStream();
sw.Write(logBytes, 0, logBytes.Length);
sw.Close();
response = (HttpWebResponse)requirejs.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
MessageBox.Show(sr.ReadToEnd());
答案 0 :(得分:16)
正如评论中所提到的,Newtonsoft.Json确实是一个很好的库,值得使用 - 非常轻量级。
如果您真的只想使用Microsoft的.NET库,还可以考虑使用System.Web.Script.Serialization.JavaScriptSerializer。
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObject = serializer.DeserializeObject(sr.ReadToEnd());
答案 1 :(得分:3)
假设(您还没有澄清)您需要实际解码流,因为A)检索远程文本流已被充分记录,并且B)您不能使用未解码的JSON流做任何事情。
您最好的行动方案是实施System.Web.Helpers.Json
:
using System.Web.Helpers.Json
...
var jsonObj = Json.Decode(jsonStream);