2010-12-16 3 views
1

웹 브라우저 컨트롤을 사용하여 탐색했지만 "개체 참조가 개체 인스턴스로 설정되지 않았습니다."가 발생했습니다. 다음에 인터넷 검색을하고 있었지만 사용할 수 없었습니다. Pls 도움.웹 브라우저에서 쿠키 오류를 설정했습니다.

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 

답변

0

WebBrowser.Document는 탐색하기 전에 null 참조 (Nothing) 일 수 있습니다!

편집 : 요청 헤더를 허용하는 this Navigate variant을 사용하여 URL을 요청할 수 있습니다. 그래서 그냥 내가 쿠키가없는 바이올린 때

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

그럼 웹 브라우저를 어떻게 실행하나요? – Sam

+0

WebBrowser1.Navigate ("about : blank")는 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."문제를 해결했지만 여전히 쿠키를 설정할 수 없습니다. 누군가가 빛을 낼 수 있습니까? 나는 일주일 동안 노력했다. – Sam

0

내가 너무 시도했다 사용합니다.

공공 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 

최종 클래스

2

실제로 쿠키를 설정하고 싶다면, 그렇게 할 수있는 올바른 방법이 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); 
} 

실제로 HTTP 헤더를 손상시키는 대신 쿠키를 설정합니다.

+0

"나는 잘 알려져 있습니다"라고 말하는 것만 큼 "옳다"는 것이 확실하지 않습니다 ... 전체 웹 브라우저 상황이 슬슬 까다 롭고 제한적입니다. 'InternetSetCookie' 문제는 WebBrowser에 로컬이 아니지만 IE에 저장된 쿠키를 오염 (이전 쿠키를 덮어 쓸 수 있음)했습니다. WebBrowser 컨트롤에서 "InPrivate"브라우징을 얻는 방법을 알고 있지 않습니다. –

+0

아니요, "격리 된"모드에서 WebBrowser 컨트롤을 실행할 방법이 없습니다. 만료일없이 InternetSetCookie를 사용하면 프로세스 외부에서 사용되지 않는 세션 별 쿠키가 만들어집니다. – EricLaw

관련 문제