2016-10-27 35 views
0

以下は実際に動作する必要があるすべてのコードです。私はこの問題がディスコでしかないと信じる理由があります。 discogsの場合は、ブラウザをエミュレートするなどの方法を知りたいです。C#Webclient DownloadFile 503エラー

次のコードを使用すると、ページに接続してイメージをダウンロードする必要がありますが、実行すると503エラーが発生します。同じリンクのページに接続すると、ブラウザに画像が表示されます。

WebClient client = new WebClient(); 
client.DownloadFile("https://img.discogs.com/h7oMsgLSWi7D6nBR8wdBwWulJ8w=/fit-in/600x600/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-9259029-1477514675-9740.jpeg.jpg", @"C:\Programming\Test\downloadimage.jpg"); 

ただし、Imgurを使用してプログラムでこれを行うと、画像が期待どおりにダウンロードされます。

client.DownloadFile("http://i.imgur.com/sFq0wAC.jpg", @"C:\Programming\Test\downloadimage.jpg"); 

私は(「URL」)クライアントを使用してdiscogsに接続し、さらにそれを介して検索を実行し、client.DownloadStringと(HTMLによるいえ)テキストとして結果を得ることができています。

しかし、私は画像をダウンロードできません。私はこれに助けていただければ幸いです。私が欲しいのは、この時点でイメージです。

答えて

3

ヘッダーにユーザーエージェントを追加することができます。これは、ブラウザーからの要求であると思われます。

WebClient client = new WebClient(); 
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");  
client.DownloadFile("https://img.discogs.com/h7oMsgLSWi7D6nBR8wdBwWulJ8w=/fit-in/600x600/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-9259029-1477514675-9740.jpeg.jpg", @"C:\Programming\Test\downloadimage.jpg"); 
+0

Holy moly!ありがとう!出来た! – user7078116

1

私は、この問題が唯一のdiscogsであると信じる理由があります。

私の意見では、 サーバが503 Service Unavailableの結果を正しく返し、例外がスローされない場合、問題があなたの側にあると信じる理由はありません。

どうしてですか?ディスコの開発者だけが確かに知っているかもしれません。
このサービスでは、ユーザー生成トラフィックが過大にならないようにして、Accept,User Agentまたは他のクライアントプロパティのために、イメージの代わりにこの応答を返します。そのため、WebClientを使用してダウンロードする場合にのみ発生します。何かを修正し、アプリケーションではなく、ユーザーであるふりをするようにしてください。

プロキシを使用している場合は、直接接続で確認することもできます。

+0

それは私ではないことを確認してくれてありがとう。あなたは私がユーザーであるとふりをするために使用すると示唆しているものは何ですか? – user7078116

関連する問題