在WinForms webbrowser中启用cookie

时间:2013-06-25 23:46:52

标签: vb.net cookies browser

我正在尝试为Facebook游戏制作机器人..问题是用户需要登录到Facebook。我试图用httpwebrequest做这个。一切都很顺利,但我收到一个错误,说我的网页浏览器不支持cookie

这是我用于httpwebrequest

的代码
 Dim postData As String = "lsd=AVrFBNXT&display=&enable_profile_selector=&legacy_return=1&next=&profile_selector_ids=&trynum=1&timezone=-120&lgnrnd=163248_FehM&lgnjs=1372203160&email=" & (TextBox1.Text) & "&pass=" & (TextBox2.Text) & "f&default_persistent=1"
    Dim tempcookies As New CookieContainer
    Dim encoding As New UTF8Encoding
    Dim byteData As Byte() = encoding.GetBytes(postData)
    Dim postreq As HttpWebRequest = DirectCast(HttpWebRequest.Create("https://www.facebook.com/login.php"), HttpWebRequest)
    postreq.Method = "POST"
    postreq.KeepAlive = True
    postreq.CookieContainer = tempcookies
    postreq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729"
    postreq.ContentType = "application/x-www-form-urlencoded"
    postreq.Referer = "https://www.facebook.com/login.php"
    postreq.ContentLength = byteData.Length
    Dim postreqstream As Stream = postreq.GetRequestStream()
    postreqstream.Write(byteData, 0, byteData.Length)
    postreqstream.Close()
    Dim postresponse As HttpWebResponse
    postresponse = DirectCast(postreq.GetResponse, HttpWebResponse)
    tempcookies.Add(postresponse.Cookies)
    logincookie = tempcookies
    Dim postreqreader As New StreamReader(postresponse.GetResponseStream())
    Dim thepage As String = postreqreader.ReadToEnd
    WebBrowser1.DocumentText = thepage

1 个答案:

答案 0 :(得分:1)

Webbrowser控件本质上是一个嵌入式Internet Explorer,因此共享Internet Explorer的设置。

如果您的IE启用了Cookie,那么您的WebBrowser控件也会启用它们,您的问题也可能出现在其他地方。

要检查您的IE设置,请按以下步骤操作:

  1. 在IE上的“工具”菜单下选择“Internet选项”;
  2. 选择“隐私”标签。
  3. 点击“设置”组框中的“高级...”按钮。
  4. 选中“覆盖自动Cookie处理”选项。
  5. 选中“接受”选项。
  6. 点击“确定”