Включить переменные записи в вызов createDocumentFromUrl в.NET

У меня есть проект в Visual Basic 2010 Express, который анализирует веб-страницы с использованием объекта IHTMLDocument. Вот функция, которую я использую для извлечения веб-страницы:

Private Function GetHTML(ByVal url As String)
    Dim htmldoc As New HTMLDocument()
    Dim ihtml2 As IHTMLDocument2
    Dim ihtml3 As IHTMLDocument3
    Dim iPersistStream As IPersistStreamInit

    iPersistStream = DirectCast(htmldoc, IPersistStreamInit)
    iPersistStream.InitNew()

    ihtml2 = htmldoc.createDocumentFromUrl(url, vbNullString)

    Do Until ihtml2.readyState = "complete"
        'required for htmlresult.readyState to transition from "loading" to "complete"
        System.Windows.Forms.Application.DoEvents()
    Loop
    ihtml3 = DirectCast(ihtml2, IHTMLDocument3)

    Return ihtml3
End Function

Я в основном делаю такие вещи с помощью функции:

ihtml = GetHTML("www.blah.com?getvar1=x&getvar2=y")
ihtml.getElementsByTagName("A")
ihtml.getElementById("myel")
etc, etc...

Я пытаюсь выяснить, как я могу включить переменные POST в дополнение к строке URL, когда я получаю документ HTML. Я имею в виду, что я хотел бы иметь возможность что-то вроде этого:

ihtml = GetHTML("www.blah.com?getvar1=x&getvar2=y",["postvar1=a","postvar2=b"])

Поэтому я хотел бы изменить мою существующую функцию GetHTML, чтобы позволить мне включать переменные записи, если это возможно, и если нет, я хотел бы знать, возможно, есть ли другой способ сделать это. Спасибо всем, кто может помочь.

1 ответ

Хорошо, я бы использовал WebCilent или WebRequest, но... если вы привержены этому дизайну:

Вы должны перейти на страницу, найти каждое поле ввода, установить значение, а затем вызвать InvokeMember на кнопке для этой страницы. WebBrowser - это автоматизация веб-браузера, а не выполнение программных HTTP-запросов.

Пример кода: http://muftisubzero.blogspot.com/2010/12/playing-with-webbrowser-class-cnet.html

Другие вопросы по тегам