2011-06-29 12 views
0

アマゾンのページからデータを取り出す社内アプリケーションがあります(特定の操作のためのAPIを持っていることを知っています...私たちは、APIに含まれていないカスタム情報を必要としています)。ページを引っ張っても問題は一度もありませんでしたが、突然、アマゾンはほぼすべてのリクエストで「(503)Server Unavailable」を返しています。これは数日間起きています。このような単純なでも何かが:WebClientとHttpWebRequestの両方が突然基本的なAmazonページを取得できませんでしたか?

System.Net.WebClient client = new System.Net.WebClient(); 
string data = client.DownloadString(new Uri("http://rads.stackoverflow.com/amzn/click/B000HZBR64")); 

奇妙なことは、これらのページは、Webブラウザでうまくロードが、我々は、コードを介してそれらを引っ張ってみてください任意の時間は、それが失敗しているということです。

これらの機能が失敗する原因は何ですか?彼らが最後に何かを変えた可能性はありますか?私たちの呼び出しでカスタムロジックを行う必要がありますか?

+2

あなたはおそらくブラックリストに載っています。 –

+0

私たちはすでにこれについて考えていました。オフィスにいない、そして決してこれらのルーチンを実行していないコンピュータを含め、いくつかのコンピュータから試してみたのでブラックリストに登録することはできません。 – Amberite

答えて

2

AmazonがHttpWebRequestのAcceptパラメータを特別に設定する必要があるため、これ以上のテストが行​​われたことが判明しました。それを設定するとき:

request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" 

すべてがうまくいきました。これは最近の変化なので、最後に何か変わったはずです。

0

あなたのユーザーエージェントを確認してください。ユーザエージェントをブラウザと同じにします。アプリにproxyを設定しているかどうかを確認しますか?あなたのブラウザとあなたのアプリが異なるプロキシを使用している可能性があります

+0

コメントありがとうございます。実際にはすでにWebブラウザを模倣するように設定されていました。私が下に投稿したように、それは実際に必要だったAcceptパラメータだった。 – Amberite

関連する問題