C# 发送和接收Json,无法读取响应

C# 发送和接收Json,无法读取响应,c#,json,C#,Json,我正在创建一个应用程序,在其中一个功能中,我需要通过web请求发送json代码 我使用Get、Post、Put和Delete。我已经可以创建连接并发送和接收数据 但是,对于每个请求,我都应该收到json代码。我相信我收到了,但我看不懂 我会放一些代码示例,这样您就可以看到我是否可以制作一些东西来阅读json代码 首先是Get请求: HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (this.getURL ()); web

我正在创建一个应用程序,在其中一个功能中,我需要通过web请求发送json代码

我使用Get、Post、Put和Delete。我已经可以创建连接并发送和接收数据

但是,对于每个请求,我都应该收到json代码。我相信我收到了,但我看不懂

我会放一些代码示例,这样您就可以看到我是否可以制作一些东西来阅读json代码

首先是Get请求:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (this.getURL ());
webRequest.Method = "GET";
webRequest.ContentType = "application/json";
webRequest.Accept = "application/json";

var response = (HttpWebResponse)webRequest.GetResponse ();

var responseString = new StreamReader (response.GetResponseStream ()).ReadToEnd ();
webRequest.Abort();

return JArray.Parse (responseString);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (this.getURL ());
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
webRequest.Accept = "application/json";

var data = Encoding.UTF8.GetBytes(request);
webRequest.ContentLength = data.Length;

Stream stream = webRequest.GetRequestStream ();

stream.Write (data, 0, data.Length);
stream.Close ();

var response = (HttpWebResponse)webRequest.GetResponse();
webRequest.Abort();

return (int)response.StatusCode;
这是我唯一可以阅读json答案的情况

下一个职位要求:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (this.getURL ());
webRequest.Method = "GET";
webRequest.ContentType = "application/json";
webRequest.Accept = "application/json";

var response = (HttpWebResponse)webRequest.GetResponse ();

var responseString = new StreamReader (response.GetResponseStream ()).ReadToEnd ();
webRequest.Abort();

return JArray.Parse (responseString);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (this.getURL ());
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
webRequest.Accept = "application/json";

var data = Encoding.UTF8.GetBytes(request);
webRequest.ContentLength = data.Length;

Stream stream = webRequest.GetRequestStream ();

stream.Write (data, 0, data.Length);
stream.Close ();

var response = (HttpWebResponse)webRequest.GetResponse();
webRequest.Abort();

return (int)response.StatusCode;
在本例中,我使用响应代码解决了问题。。它只能是200,因为每一个其他代码都被假定为某个异常

对于put和delete,将与post相同。 正如我所说,我需要接收json代码。而且不仅仅是响应代码


如果你能在这个问题上帮助我,我将非常感激。

感谢奥雷尔,他曾试图帮助我

我已经解决了mt问题,我将为可能需要这种解决方案的每个人发布一个示例代码

我的问题其实很简单。 当我在web请求中使用“POST”时,我会创建一个流来实际发布我的数据。然后我会尝试从同一个流中得到我的答案,实际上我在WebRequestVar中得到了我需要的信息

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (this.getURL ());
webRequest.Method = "POST";
webRequest.ContentType = "application/json";
webRequest.Accept = "application/json";

var data = Encoding.UTF8.GetBytes(request);
webRequest.ContentLength = data.Length;

Stream stream = webRequest.GetRequestStream ();

stream.Write (data, 0, data.Length);

var webResponse = (HttpWebResponse)webRequest.GetResponse();
var responseString = new StreamReader(webResponse.GetResponseStream()).ReadToEnd();

stream.Close ();webRequest.Abort();

return JObject.Parse(responseString);

响应代码可以不同于200,并且仍然是有效的响应。有没有可能服务器在发布时总是返回HTML?该服务器有一个平台,您可以看到要使用的url以及应该发送的数据或期望的答案。在这个平台上,它工作得很好。我得到了我需要的json代码。。。我相信问题出在我的代码中,因为我在使用GET时收到了json代码。我看到另一个应用程序在这个平台上工作,我知道你可以接收json代码……你能发布GET和post操作都需要发送的URL和表单数据吗?我可以示例一下。。。url是,并且每个操作的数据都不同,因此在本例中,它应该是:{“status”:“ok”,“id”:“value”}要发布的Answare是以前的json对象的数组,但这与此问题无关。。。因为我已经可以接收数据了。。我就是看不清楚。。。