byte[] content = Encoding.UTF8.GetBytes(data);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(content,0,content.Length);
response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream(),System.Text.Encoding.UTF8);
String resultData = reader.ReadToEnd();
我正在获取数据作为回应,同时也在进行快速观察.ReadToEnd()它在VS中显示数据,但resultData始终为空。
任何想法我在这里做错了什么?
答案 0 :(得分:3)
如果您在调试器中使用reader.ReadToEnd()
,那么当您尝试在实际代码中调用ReadToEnd()
时,将不会再有任何数据。
请注意,您应该使用using
语句作为响应,以便在完成后将其关闭。
答案 1 :(得分:-2)
您的代码有多个问题(ContentLength
应该是content.Length
而不是data.Length
;应该处理一次性资源),但我不确定哪一个对您看到的行为负责
但是,使用WebClient Class:
时,您的代码可能会略微缩短using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "application/json";
string resultData = client.UploadString(url, data);
}
也许你可以检查一下你的情况是否有效。