1

System.Net.WebClient.DownloadFileを使用して、パブリックWebサーバーから多数のhtmlファイルをダウンロードしています。圧縮を有効にすると、データ転送が大幅に削減される可能性があるためです。前の質問で、「Accept-Encoding:gzip、deflate」ヘッダーを設定する必要があると言われました。WebClientには、それを可能にするHeadersプロパティがあります。

これについていくつか質問があります。

  1. Webサーバーがヘッダーを認識すると仮定すると、これはDownloadFileメソッドで機能しますか、それともDownloadDataメソッドでのみ機能しますか?これに関する情報はMSDNまたは他のサイトで見つかりませんでした。
  2. DownloadFileで機能しない場合、圧縮データのファイルへのダウンロードを実装する最も簡単な方法は何でしょうか。
  3. サーバーがデータを圧縮するために、他のヘッダーを設定する必要がありますか?古いcodinghorror.comエントリで、Jeff Atwoodは、「UserAgent」ヘッダーも設定する必要があると述べましたが、値がどうあるべきかわかりません。
4

1 に答える 1

2
  1. DownloadFileは、生のWebRequestの単なるラッパーです。結果を処理し、「ファイル」またはバイト配列としてパッケージ化するだけです。
  2. できます; ただし、ローカルファイルに送信されるデータはまだ圧縮されているため、手動で解凍する必要があります。

  3. デフォルトのUserAgentを取得します。アクセスするサイトで必要な場合を除いて、特定のUserAgent値は必要ありません。しかし、あなたはそれを見つけなければならないでしょう。(ジェフの投稿はグーグルがそれを必要とすることを示唆している;しかしそれがまだ真実であるかどうかはわからない)

于 2012-07-26T15:40:31.573 に答える