vb.NET WebRequest для чтения aspx страницы в строку, доступ запрещен? - PullRequest
0 голосов
/ 24 октября 2010

Я пытаюсь создать исполняемый файл в 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()

Есть предложения или идеи?

1 Ответ

1 голос
/ 24 октября 2010

Я получаю то же самое при запуске 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...