6

奇妙なことに、私はそこにあるさまざまな Web サイトの <Head> セクションを読み取ろうとしていますが、ある特定のタイプのサーバーである Apache では、コード 403 が禁止されていることがあります。すべての apache サーバーがこれを行うわけではないため、構成設定またはサーバーの特定のバージョンである可能性があります。

次に、Web ブラウザー (Firefox など) で URL を確認すると、ページが正常に読み込まれます。コードは次のようになります。

var client = new WebClient();
var stream = client.OpenRead(new Uri("http://en.wikipedia.org/wiki/Barack_Obama"));

通常、403 はアクセス許可に失敗したようなものですが、これらは通常、安全でないページです。わざわざ作成する必要がないので、Apache がリクエスト ヘッダー内の何かをフィルタリングしていると考えています。

Apache について詳しく知っている人が、ヘッダーに何が欠けているかについてのアイデアを教えてくれるかもしれません。帯域幅を最小限に抑えるために、ヘッダーをできるだけ小さくしたいと思います。

ありがとう

4

4 に答える 4

10

UserAgent ヘッダーを設定してみてください。

string _UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
client.Headers.Add(HttpRequestHeader.UserAgent, _UserAgent);
于 2010-02-23T04:33:43.937 に答える
6

同様の問題があり、以下の設定で解決しました

Client.Headers["Accept"] = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
Client.Headers["User-Agent"] ="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC)";
于 2010-11-10T19:43:00.240 に答える
1

「thedugas」が言ったように、UserAgent ヘッダーの問題である可能性があります。たとえば、ブラウザが使用しているプロキシ サーバーを使用していないか、プロキシ サーバーの正しい資格情報を使用していないことが原因である可能性があります。これらは、ブラウザーに既に構成されている可能性があるため、実行する必要があることに気付いていません。

于 2010-02-23T04:39:10.557 に答える