#c# #console-application
#c# #консольное приложение
Вопрос:
Я пишу очень простое приложение. Предполагается загружать файлы из Интернета. У меня есть URL-адреса и имена файлов для сохранения в таблицах. Но мой код не работает.
for (int i = 1; i < links.Length; i )
{
Uri uri = new Uri(links[i]);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri);
webRequest.Method = "GET";
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Stream responseStream = webResponse.GetResponseStream();
StreamReader responseStreamReader = new StreamReader(responseStream);
String result = responseStreamReader.ReadToEnd();
StreamWriter w = new StreamWriter(savepath names[i]);
w.Write(result);
w.Close();
break;
}
пример URL:
http://books.google.pl/books?id=yOz1ePt39WQCamp;pg=PA2amp;img=1amp;zoom=3amp;hl=plamp;sig=ACfU3U0MDQtXGU_3YVqGvcsDiWLLcKh0KAamp;w=800amp;gbd=1
пример названия: 002.png
Файлы должны быть сохранены в виде изображения PNG, но вместо этого я получаю что-то, начинающееся с <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Второй вопрос. Как я могу обнаружить ошибку HTTP 404 при попытке загрузки?
РЕДАКТИРОВАТЬ: Я виноват. мои ссылки были неверными. После замены amp;amp;
на amp;
они верны. Ссылка на пример (исправлена):
http://books.google.pl/books?id=yOz1ePt39WQCamp;pg=PA2amp;img=1amp;zoom=3amp;hl=plamp;sig=ACfU3U0MDQtXGU_3YVqGvcsDiWLLcKh0KAamp;w=800amp;gbd=1
Несмотря на это, я все еще не могу правильно загружать PNGS. Они не открываются. Но, по крайней мере, это не HTML-страницы. Я думаю, что пытаться сохранить их в виде строки — не очень хорошая идея. Но я не знаю, как еще я мог бы это сделать. Может быть, используя byte[] или что-то в этомроде?
Комментарии:
1. Если вы перейдете по этому URL вручную, вы попадете на HTML-страницу…
2. Я понял, что мои ссылки были неверными. Я внес правку.
Ответ №1:
Вы пробовали WebClient.Загрузить файл?
string url = "http://books.google.pl/books?id=yOz1ePt39WQCamp;pg=PA2amp;img=1amp;zoom=3amp;hl=plamp;sig=ACfU3U0MDQtXGU_3YVqGvcsDiWLLcKh0KAamp;w=800amp;gbd=1";
string file = "002.png";
WebClient wc = new WebClient();
wc.DownloadFile(url, file);
сохранит изображение в каталоге приложения как 002.png.