Ошибка установки файлов cookie веб-браузера - PullRequest
1 голос
/ 16 декабря 2010

Я использую элемент управления 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 ]

2 голосов
/ 26 апреля 2011

Если вы действительно хотите установить cookie, правильный способ сделать это - использовать API InternetSetCookie.

[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.

0 голосов
/ 17 декабря 2010

Я тоже это пробовал, когда я возился, куки там нет.

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

Конечный класс

0 голосов
/ 16 декабря 2010

Ваш WebBrowser.Document, вероятно, является пустой ссылкой (Nothing) перед навигацией!

EDIT: Вы можете запросить URL, используя этот вариант Navigate , который принимает заголовки запроса.так что просто используйте

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