4

コードを使用してhttp://simpledesktops.com/browse/desktops/2012/may/17/where-the-wild-things-are/のソースを表示しようとしています:

String URL = "http://simpledesktops.com/browse/desktops/2012/may/17/where-the-wild-things-are/";

WebClient webClient = new WebClient();

webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");
webClient.Encoding = Encoding.GetEncoding("Windows-1255");

string download = webClient.DownloadString(URL);

webClient.Dispose();

Console.WriteLine(download);

これを実行すると、コンソールは、正しくデコードされていないように見える一連の意味のないメッセージを返します。

また、無駄にヘッダーを追加しようとしました:

webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");    
webClient.Headers.Add("Accept-Encoding", "gzip,deflate");

他の Web サイトはすべて適切な html ソースを返しました。Chrome からページのソースを表示することもできます。何が起きてる?

4

2 に答える 2

4

その URL の応答は gzip されています。解凍するか、空の Accept-Encoding ヘッダーを設定する必要があります。ユーザー エージェント フィールドは必要ありません。

  String URL = "http://simpledesktops.com/browse/desktops/2012/may/17/where-the-wild-things-are/";    
  WebClient webClient = new WebClient();    
  webClient.Headers.Add("Accept-Encoding", "");
  string download = webClient.DownloadString(URL);
于 2012-05-28T01:54:36.407 に答える