[英]Empty response data using HttpWebResponse with Mono on Ubuntu
[英]Unable to read response data using HttpWebResponse
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();
我正在獲取數據作為響應,也在進行reader.ReadToEnd()的快速監視時,它在VS中顯示數據,但resultData始終為空。
知道我在這里做什么錯嗎?
如果在調試器中使用reader.ReadToEnd()
,那么當您嘗試在實際代碼中調用ReadToEnd()
,將不再有任何數據。
請注意,應將using
語句用於響應,以便在完成后將其關閉。
您的代碼有多個問題( ContentLength
應該是content.Length
而不是data.Length
;應該處理可處置的資源),但是我不確定哪個是您看到的行為的原因。
但是,當您使用WebClient類時,您的代碼可以略微縮短:
using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "application/json";
string resultData = client.UploadString(url, data);
}
也許您可以檢查這種情況是否適合您的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.