Webbrowser设置cookie错误

时间:2010-12-16 07:52:56

标签: .net webbrowser-control

我使用Webbrowser控件进行导航,但遇到“对象引用未设置为对象的实例”。在下面。一直在谷歌上搜索但无济于事。请帮忙。

Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    WebBrowser1.Document.Cookie = "test=1234"        'Error line
    WebBrowser1.Navigate("www.yahoo.com")
End Sub

End Class

3 个答案:

答案 0 :(得分:2)

如果您确实想要设置cookie,那么正确的方法是使用InternetSetCookie API。

[DllImport("wininet.dll", CharSet=CharSet.Auto , SetLastError=true)] 
private static extern bool InternetSetCookie (string url, string name, string data);

public static bool SetWinINETCookieString(string sURL, string sName, string sData) 
{
    return InternetSetCookie(sURL, sName, sData);
}

这实际上会设置cookie,而不是简单地破坏你的HTTP头。

答案 1 :(得分:0)

您的WebBrowser.Document在导航之前可能是一个空引用(Nothing)!

编辑: 您可以使用接受请求标头的this Navigate variant请求网址。 所以只需使用

 WebBrowser1.Navigate(url, Nothing, Nothing, "Cookie: test=1234")

答案 2 :(得分:0)

我也尝试过,当我把饼干弄不清楚的时候。

Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    WebBrowser1.Navigate("about:blank")
    WebBrowser1.Document.Cookie = "test=1234"
    WebBrowser1.Navigate("www.yahoo.com")

End Sub

结束班