繁体   English   中英

vb.NET WebRequest将aspx页面读取为字符串,访问被拒绝?

[英]vb.NET WebRequest to read aspx page to string, access denied?

我正在尝试在VS2008中制作一个可执行文件,该文件将使用vb.NET函数将网页源代码读取为字符串变量。 问题在于该页面不是* .html,而是* .aspx。

我需要一种方法来执行aspx并将显示的html转换为字符串。

我要阅读的页面是这种类型的任何页面: http : //www.realtor.ca/PropertyDetails.aspx?PropertyID=9620716

我尝试了以下代码,该代码对于html页面正常工作,但是当我在上面的aspx页面中传递时,生成的页面标题带有“访问被拒绝”的错误源代码。

    Dim myReq As WebRequest = WebRequest.Create(url)

    Dim myWebResponse As WebResponse = myReq.GetResponse()

    Dim dataStream As Stream = myWebResponse.GetResponseStream()

    Dim reader As New StreamReader(dataStream, System.Text.Encoding.UTF8)

    Dim responseFromServer As String = reader.ReadToEnd()

有什么建议或想法吗?

从命令行运行wget时,我得到了同样的东西:

wget http://www.realtor.ca/PropertyDetails.aspx?PropertyID=9620716

我猜服务器在交付响应之前依赖于在浏览器中设置了某些内容,例如cookie。 您可能想通过以下方式尝试使用WebBrowser控件(不必使其可见)(可行):

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf DocumentCompletedHandler)
        WebBrowser1.Navigate("http://www.realtor.ca/PropertyDetails.aspx?PropertyID=9620716")
    End Sub

    Private Sub DocumentCompletedHandler(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
        Console.WriteLine(WebBrowser1.DocumentText)
    End Sub
End Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM