Проблемы с загрузкой источника с веб-страницы - PullRequest
1 голос
/ 15 сентября 2011

Я пытаюсь загрузить исходный код этой веб-страницы для школьного проекта, используя c #.
это страница, которую я пытаюсь получить:
http://www.epicurious.com/tools/fooddictionary/entry?id=1650

Я пробовал код, такой как

 HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create("http://www.epicurious.com/tools/fooddictionary/entry?id=1650");

и с помощью

 WebClient client = new WebClient();
string value = client.DownloadString("http://www.epicurious.com/tools/fooddictionary/entry?id=1650");

и ни один из методов не дает мне исходный код страницы. Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 15 сентября 2011

с использованием HttpWebRequest.Create

try
{
    WebRequest req = HttpWebRequest.Create("http://www.epicurious.com/tools/fooddictionary/entry?id=1650");
    req.Method = "GET";

    string source;
    using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
    {
        source = reader.ReadToEnd();
    }
}
catch (Exception ex)
{
    //Log the exception 
    MessageBox.Show(ex.ToString());
}

Использование DownloadString

WebClient client = new WebClient();
string reply = client.DownloadString("http://www.epicurious.com/tools/fooddictionary/entry?id=1650");

Вышеуказанные методы работают нормально для меня.Проверьте исключение, если таковое имеется.

0 голосов
/ 15 сентября 2011

Как насчет этого ...

string sourceCode = "";
Uri site = new Uri("http://www.epicurious.com/tools/fooddictionary/entry?id=1650");
WebRequest request = WebRequest.Create(site);
using(StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.ASCII)){
    sourceCode = reader.ReadToEnd();
}

Оператор "using" закроет ваши потоки для вас. ПРИМЕЧАНИЕ. Вызов close для потока также вызовет class для любых потоков, которые он использует, поэтому вам нужен только один оператор using

...