Current Page HTML output using c#
<p>I am working in an asp.net website. I need to get the current page HTML output in the Page Load event. I tried the following code. But I am not getting any output, it executes continuously.</p>

<pre><code>protected void Page_Load(object sender, EventArgs e)
{
        Http(Request.Url.ToString());
}

public void Http(string url)
{
    if (url.Length &gt; 0)
    {
        Uri myUri = new Uri(url);
        // Create a 'HttpWebRequest' object for the specified url. 
        HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri);
        // Set the user agent as if we were a web browser
        myHttpWebRequest.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4";

        HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
        var stream = myHttpWebResponse.GetResponseStream();
        var reader = new StreamReader(stream);
        var html = reader.ReadToEnd();
        // Release resources of response object.
        myHttpWebResponse.Close();
        Response.Write(html);
    }
}
</code></pre>

<p>What is wrong here?</p>

<p>Is there is any other way to get current page HTML output using c#?</p>

<p>I tried the following code also:</p>

<pre><code> protected void Page_Load(object sender, EventArgs e)
{
    Page pp = this.Page;
    StringWriter tw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(tw);
    pp.RenderControl(hw);

    string theOut = tw.ToString().Trim();
    string FilePath = @"D:\Home.txt";

    Stream s = new FileStream(FilePath, FileMode.Create);

    StreamWriter sw = new StreamWriter(s);
    sw.WriteLine(theOut);
    sw.Close(); 
}
</code></pre>

<p>By using the code i am able to get the HTML in the ".txt" file.But execution of this code causes "A page can have only one server-side Form tag." error. Can anybody help me to solve this?</p>
