【发布时间】:2012-05-01 08:11:39
【问题描述】:
在我的 C# 应用程序中,我正在使用 HTTPWebrequest 等浏览网站。 在某个时候,我想在 WebBrowser 控件中显示网站。
当前的 Cookie 保存在 CookieContainer 中。
以下代码完美运行,所有 Cookie 均由浏览器在请求中发送。
CookieCollection cookies = ck.GetCookies(new Uri("http://www.abcde.de"));
foreach (Cookie c in cookies) {
if (!InternetSetCookie("http://www.abcde.de", c.Name, c.Value))
throw new Exception("Exception setting cookie: Win32 Error code="
+ Marshal.GetLastWin32Error());
}
/** Setting header_infos, POST-Data etc **/
webBrowser1.Navigate(link, "_self", parameterbyte, header_infos.ToString());
但是当我从像这样的子域中检索 Cookie 时
CookieCollection cookies = ck.GetCookies(new Uri("http://ab.cde.de"));
IntersetSetCookie 函数抛出异常,因为 URL 格式“http://ab.cde.de”无效。当我尝试“http://www.cde.de”或“http://www.ab.cde.de”时,我没有收到异常,但网站无法正确加载,因为浏览器只发送请求中的五个 cookie 之一,我不知道为什么。
你知道我该如何解决这个问题吗?
【问题讨论】:
标签: c# cookies browser webclient webrequest