Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从响应流获取JSON数据并将其作为字符串读取?_C#_Json_Winforms_Httpwebresponse - Fatal编程技术网

C# 从响应流获取JSON数据并将其作为字符串读取?

C# 从响应流获取JSON数据并将其作为字符串读取?,c#,json,winforms,httpwebresponse,C#,Json,Winforms,Httpwebresponse,我试图从服务器读取一个响应,当我发送POST请求时收到该响应。查看fiddler时,它表示这是一个JSON响应。如何使用C#Winforms将其解码为普通字符串,最好不要使用外部API。如果您需要,我可以提供其他代码/fiddler结果 小提琴手和胡言乱语的形象: 这种胡言乱语来自于我试图读取以下代码中的流: Stream sw = requirejs.GetRequestStream(); sw.Write(logBytes, 0, logBytes.Length); sw.Close(

我试图从服务器读取一个响应,当我发送POST请求时收到该响应。查看fiddler时,它表示这是一个JSON响应。如何使用C#Winforms将其解码为普通字符串,最好不要使用外部API。如果您需要,我可以提供其他代码/fiddler结果

小提琴手和胡言乱语的形象:

这种胡言乱语来自于我试图读取以下代码中的流:

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());
假设(您还没有澄清)您需要实际解码流,因为A)检索远程文本流是有很好的文档记录的,B)对于未解码的JSON流,您不能做很多事情

您的最佳行动方案是实施:


正如评论中提到的,Newtonsoft.Json确实是一个很好的库,值得使用——非常轻量级

如果您真的只想使用微软的.NET库,也可以考虑Syr.Web.Script。序列化。JavaScriptSerializer。

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObject = serializer.DeserializeObject(sr.ReadToEnd());

“最好没有外部API。”使用外部API,如Newtonsoft.Json(也称为Json.NET)。您需要将其作为字符串显示,还是需要利用其中包含的数据(意味着您需要它作为数组/列表提供)?@SteveWellens-OP希望将响应作为字符串读取,而实际上不需要外部API。解析可能需要JSON.Net。。。代码看起来很合理。显然,创作缺失,OP可能需要阅读哪一个才是输出的原因。@AlexeiLevenkov-感谢您重申OP的愿望。我想他会发现,尝试从JSON字符串创建对象是一项艰巨的工作,使用第三方库是一种可以接受的方式。我当时正推着他朝着他可能要去的方向走。我需要它作为一根线,这样我就可以把它作为一个标题发送。如何找到System.Web.Helpers:谢谢!HTTPS连接中的HTTPWebRequest是否阻止对其进行反序列化?因为登录是HTTPS连接,我知道JSON是有效的,但是当我尝试反序列化它时,它没有成功,说“无效的JSON原语”。我在这里遗漏了什么吗?我从来没有在解码HTTPS连接的响应时遇到过问题。解码失败的原始文本是什么?
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObject = serializer.DeserializeObject(sr.ReadToEnd());