首页 文章

HttpWebRequest,WebBrowser和cookies? (visual basic 2010)

提问于
浏览
0

我正在为我的妹妹写一个程序,她在网上玩这个游戏 . 它使用WebBrowser控件和HttpWebRequest .

基本功能是它搜索网站,我们会说网址是http://hersite.com/pet/ *(只是一个例子)其中是一个数字,这是它搜索的方式 . 我使用for循环来循环从指定的开始到结束的数字,并使用httpwebrequest获取html代码,然后使用InStr和.split()处理字符串

当我使用WebRequest.Navigate访问网页时,它会正确地转到页面 . 但是,如果我通过HttpWebRequest获取源代码,它将获取登录页面的来源,如果您未登录,网站会将其重新指向您 .

有没有办法将cookie从WebBrowser传输到我的HttpWebRequest?

我希望这很清楚 .

一些例子:

在这里获取HTML我需要将cookie添加到http请求者,不是吗?

函数GetHTML(ByVal strPage As String)As String Dim strReply As String =“NULL”

Try
    Dim objHttpRequest As System.Net.HttpWebRequest
    Dim objHttpResponse As System.Net.HttpWebResponse
    Dim uri As New Uri(strPage)

    objHttpRequest = System.Net.HttpWebRequest.Create(strPage)


    objHttpResponse = objHttpRequest.GetResponse
    Dim objStrmReader As New StreamReader(objHttpResponse.GetResponseStream)

    strReply = objStrmReader.ReadToEnd()

    Catch ex As Exception
    strReply = "ERROR! " + ex.Message.ToString
     End Try

    Return strReply

End Function

2 回答

  • 0

    你在http请求中如何获取或设置cookie有什么问题?

    好吧,如果问题是如何设置,你可以这样做:

    objHttpRequest.Headers["Cookie"] = "baa";
    

    但是,如果是后者:

    使用tcpdump或Wireshark或其他一些此类工具捕获网络流量,并查看go代码发送到服务器的确切内容以及服务器返回的响应内容 . 对登录页面发出http请求 - >发送登录名和密码(例如)如果取得成功,服务器会在响应头中返回cookie . 将标签cookie从响应中分离出来并在您的http请求中进行设置,如上所述 .

  • 0

    所以你试图在 WebBrowser 控件和 HttpWebRequest 对象之间共享cookie?前者实际上使用's the system'的cookie(技术上是Internet Explorer),因此访问它们可能存在安全风险 . 那说,有办法 . 查看this post . 它's in C# but you should be able to convert it to VB pretty easily. You'将看到一个P / Invoke来访问安全cookie . 最终你只是将一个字符串从一个程序转移到另一个程序,你只需要确保它的格式正确 .

相关问题