阅读网站的内容长度

时间:2016-08-31 13:24:43

标签: c# .net

我正在尝试获取网页的内容长度。例如http://www.google.com

我正在使用c#,以下是我使用的代码,并没有给我正确的长度或它。有人可以验证。

var request = (HttpWebRequest)WebRequest.Create("http://www.google.com.au");
request.Method = "GET";
var myResponse = request.GetResponse();
var responseLength = myResponse.ContentLength;

using (var sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8))
{
    var result = sr.ReadToEnd();
    myResponse.Close();
}

responseLength总是-1,但是结果.Length有一些值,这是正确的吗?

2 个答案:

答案 0 :(得分:2)

  

responseLength总是-1,但是结果.Length有一些值,这是正确的吗?

可能是某些网站(或某些网站上的某些回复) - 在其他情况下,您会看到responseLength的非负值。您所做的只是获取可选的Content-Length HTTP标头,基本上......无论是否提供,都取决于服务器。

请注意,响应长度(如果提供)将以字节为单位 - 而result.Length为UTF-16代码单元。如果您希望内容长度为 bytes ,则应直接从流中读取二进制数据,而不是创建StreamReader并将其作为文本读取。

答案 1 :(得分:0)

我想你想要DownloadString,然后查看长度。

Console.WriteLine(new WebClient().DownloadString("https://google.com/").Length);