我正在为我的妹妹写一个程序,她在网上玩这个游戏 . 它使用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 回答
你在http请求中如何获取或设置cookie有什么问题?
好吧,如果问题是如何设置,你可以这样做:
但是,如果是后者:
使用tcpdump或Wireshark或其他一些此类工具捕获网络流量,并查看go代码发送到服务器的确切内容以及服务器返回的响应内容 . 对登录页面发出http请求 - >发送登录名和密码(例如)如果取得成功,服务器会在响应头中返回cookie . 将标签cookie从响应中分离出来并在您的http请求中进行设置,如上所述 .
所以你试图在
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 . 最终你只是将一个字符串从一个程序转移到另一个程序,你只需要确保它的格式正确 .