2014-06-28 38 views
0

我正在创建一个应用程序,并且在其中一个功能中,我需要通过Web请求发送json代码。发送和接收Json,不能读取响应

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

但是,对于每个请求,我应该收到JSON代码。我相信我收到了,但我不能读它...

I'l把一些代码示例,所以你可以看到,如果有什么我可以读取该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); 

这是唯一的情况下,我可以阅读json的答案。

下一页POST请求:

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解决我的问题,因为所有其他的代码被假定为一些例外。

用于放置和删除将与发布相同。 正如我所说我需要接收json代码。而不仅仅是响应代码。

如果您能帮助我解决这个问题,我将非常感激。

+1

响应代码可以不同于200,仍然是有效的响应。服务器是否有可能在发布时始终返回HTML? –

+0

该服务器有一个平台,您可以看到要使用的URL以及您应该发送哪些数据或期望的答案。并在该平台上工作得很好。我得到了我需要的json代码... 我相信问题出在我的代码中,因为我在使用GET时收到了json代码。我已经看到另一个应用程序在这个平台上工作,我知道U可以接收这个json代码...... – user3676841

+0

你可以发布需要发送的GET和POST操作的URL和表单数据吗? –

回答

0

感谢奥雷尔谁试图帮助。

我得到了mt问题的解决,我会发布一个示例代码给每个可能需要这种解决方案的人。

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

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);