2016-10-27 4 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"); 

Я могу подключиться к Discogs с помощью клиента, и даже запустить поиск через него и получить результаты в виде текста (хотя и через HTML) с client.DownloadString («URL»);

но я не могу скачать никакие изображения. Я был бы признателен за любую помощь в этом, все, что я хочу, - это изображения на этом этапе.

ответ

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

Святые моли! благодаря! это сработало! – user7078116

1

У меня есть основания полагать, что этот вопрос только с Discogs.

Вы должны иметь, на мой взгляд. Нет оснований полагать, что проблема на вашей стороне, когда сервер правильно возвращает результат 503 Service Unavailable, и никаких исключений не выбрасывается.

Почему это происходит? Только разработчики дискотек наверняка знают.
Мое предложение состоит в том, что эта служба пытается избежать чрезмерного трафика, не связанного с пользователем, и возвращает этот ответ вместо вашего изображения из-за некоторых , User Agent или других свойств клиента. Вот почему это происходит только при загрузке с помощью WebClient. Попробуйте что-то изменить и притвориться пользователем, а не приложением.

Если вы работаете через прокси-сервер, вы также можете проверить его с помощью прямого подключения.

+0

Спасибо за подтверждение, что это НЕ я. Что вы предлагаете мне использовать, чтобы притворяться пользователем? – user7078116

Смежные вопросы