【问题标题】:vb.NET WebRequest to read aspx page to string, access denied?vb.NET WebRequest 将 aspx 页面读取为字符串,访问被拒绝?
【发布时间】:2010-10-24 01:36:00
【问题描述】:

我正在尝试在 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()

有什么建议或想法吗?

【问题讨论】:

  • 您能发布创建url 变量的代码吗?

标签: html vb.net parsing asp.net webrequest


【解决方案1】:

我从命令行运行 wget 时得到同样的结果:

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

我猜服务器依赖于在传递响应之前在浏览器中设置的东西,例如一块饼干。您可能想尝试通过以下方式使用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

【讨论】:

  • 谢谢,这似乎有效!我认为你需要饼干之类的东西是对的。我可以调查一下。感谢您的帮助,WebBrowser DocumentText 的想法会很好用。干杯
  • 如果这个答案是可以接受的,请将其标记为您接受的答案,以便响应者获得他/她的帮助。
猜你喜欢
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 2013-04-10
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多