how to get/trace asp.net outgoing response text

前端 未结 2 386
半阙折子戏
半阙折子戏 2021-01-24 11:56

my server seems to be sometimes returning wrong html to webclients

im using asp.net 4 with VS 2012. debugging on IIS Express.

in order to debug this issue, id li

相关标签:
2条回答
  • 2021-01-24 12:35

    You can get the HTML (and modify it) by overriding Render on the page / site master.

            protected override void Render(System.Web.UI.HtmlTextWriter writer)
            {
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    using (System.IO.StreamWriter sw = new System.IO.StreamWriter(ms))
                    {
                        HtmlTextWriter tw = new HtmlTextWriter(sw);
                        base.Render(tw);
                        tw.Flush();
                        ms.Position = 0;
                        using (System.IO.StreamReader sr = new System.IO.StreamReader(ms))
                        {
                            string yourHTML = sr.ReadToEnd();
                            // do stuff with yourHTML
                            Response.Write(yourHTML);
                            sr.Close();
                            tw.Dispose();
                        }
                    }
                }
            }
    

    in vb

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            Using ms As New System.IO.MemoryStream()
                Using sw As New System.IO.StreamWriter(ms)
                    Dim tw As HtmlTextWriter = New HtmlTextWriter(sw)
                    MyBase.Render(tw)
                    tw.Flush()
                    ms.Position = 0
                    Using sr As New System.IO.StreamReader(ms)
                        Dim yourHTML As String = sr.ReadToEnd()
                        'do stuff with yourHTML'
                        Response.Write(yourHTML)
                        sr.Close()
                        tw.Dispose()
    
                    End Using
                End Using
            End Using
        End Sub
    
    0 讨论(0)
  • 2021-01-24 12:51

    this does not answer my original question technically, but it does solve the issue i was having

    the problem was that the html wasnt rendering correctly

    i now remembered that aspx has adaptive rendering, so i fgured the useragent used in the request might be to blame

    i changed my code to:

     Dim myReq As HttpWebRequest = WebRequest.Create(MailUrl)
     myReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1"
     Dim resp As HttpWebResponse = myReq.GetResponse
     Dim stream = resp.GetResponseStream
     Dim rdr = New StreamReader(stream)
     Dim BodyText = rdr.ReadToEnd
    

    and now the html is rendering in correct modern Html5/Css3 markup

    i appreciate your help and guidance.

    0 讨论(0)
提交回复
热议问题