我正在尝试使用 C# 中的 httpwebrequests 从网络服务器读取响应。我使用以下代码:
UriBuilder urib = new UriBuilder();
urib.Host = "wikipedia.com";
HttpWebRequest req = WebRequest.CreateHttp(urib.Uri);
req.KeepAlive = false;
req.Host = "wikipedia.com/";
req.Method = "GET";
HttpWebResponse response = (HttpWebResponse) req.GetResponse();
byte[] buffer = new byte[response.ContentLength];
System.IO.Stream stream = response.GetResponseStream();
stream.Read(buffer, 0, buffer.Length);
Console.WriteLine(System.Text.Encoding.ASCII.GetString(buffer, 0, buffer.Length));
该代码确实检索到正确数量的数据(我比较了用于创建缓冲区的内容长度,与控制台输出的长度,它们是相同的。我的问题是最后 80% 左右的响应是空白的字符。它们都是 0x00。我用几个页面测试了这个,包括 wikipedia.com,它只是出于某种原因切断了中间文件。
我是否误解/误用了使用 webrequests 的方式,或者任何人都可以在这里发现错误?