Получить исходный код какого-либо сайта из кода asp.net

Есть ли какой-нибудь способ, которым я мог бы получить источник веб-сайта (предпочтительно в виде строки), скажем, www.google.com, из некоторого кода на c # внутри кода за сайтом asp.net?

редактировать: конечно, я имею в виду HTML-код - в каждом браузере вы можете просмотреть его с помощью «просмотра»источник"в контекстном меню.

 Tom22 дек. 2008 г., 13:52
Пожалуйста, дайте понять ... вы пытаетесь получить исходный код веб-сайта или пытаетесь получить HTML-содержимое веб-сайта и проанализировать его самостоятельно в C #?

Ответы на вопрос(3)

Решение Вопроса

Предполагая, что вы хотите получить HTML:

class Program
{
    static void Main(string[] args)
    {
        using (WebClient client = new WebClient())
        using (Stream stream = client.OpenRead("http://www.google.com"))
        using (StreamReader reader = new StreamReader(stream))
        {
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

Для C # я предпочитаю использоватьHttpWebRequest через WebClient, потому что в будущем у вас будет больше возможностей, таких как параметр GET / POST, использование файлов cookie и т. д.

Вы можете иметь кратчайшее объяснение наMSDN.

Вот пример из MSDN:

        // Create a new HttpWebRequest object.
        HttpWebRequest request=(HttpWebRequest) WebRequest.Create("http://www.contoso.com/example.aspx");    

        // Set the ContentType property. 
        request.ContentType="application/x-www-form-urlencoded";
        // Set the Method property to 'POST' to post data to the URI.
        request.Method = "POST";
        // Start the asynchronous operation.    
        request.BeginGetRequestStream(new AsyncCallback(ReadCallback), request);    

        // Keep the main thread from continuing while the asynchronous
        // operation completes. A real world application
        // could do something useful such as updating its user interface. 
        allDone.WaitOne();

        // Get the response.
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream streamResponse = response.GetResponseStream();
        StreamReader streamRead = new StreamReader(streamResponse);
        string responseString = streamRead.ReadToEnd();
        Console.WriteLine(responseString);
        // Close the stream object.
        streamResponse.Close();
        streamRead.Close();

        // Release the HttpWebResponse.
        response.Close();

это не самый очевидный (и лучший) способ, но я обнаружил, что в формах Windows вы можете использовать элемент управления WebBrowser (если он вам действительно нужен), заполнить его свойство Url нужным вам URL-адресом и, когда он загружен, прочитать свойство DocumentText. - он содержит HTML-код просматриваемого сайта.

Ваш ответ на вопрос