WINFORM下的COOKIE问题,不解决一直在线等!200分!
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim cookieheader As String
Dim url As String = textBox1.Text
'此处给出的网址,已通过IE登录,并设置COOKIE一年期有效!
Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
Dim cookieCon As CookieContainer = New CookieContainer ()
req.CookieContainer = cookieCon
Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
'第一次请求,得到cookie
cookieheader = req.CookieContainer.GetCookieHeader(New Uri (url))
req.CookieContainer.SetCookies(New Uri (url), cookieheader)
res = CType(req.GetResponse(), HttpWebResponse)
'第二次请求
Dim ReceiveStream As Stream = res.GetResponseStream()
Dim sr As StreamReader = New StreamReader (ReceiveStream,
System.Text.Encoding.GetEncoding("GB2312"))
Dim s As String = sr.ReadToEnd()
textBox2.Text = s
'得到的内容仍然是未登录的内容
End Sub
请高手解答,还有不清楚的请问我,在线等哇!
谢谢,分不够,再加!
问题点数:100、回复次数:5Top
1 楼NetFire(Fire.Rolland.Han)回复于 2004-12-04 13:25:37 得分 10
winform?我没有听错吧?
你把缓存了cookie清空后看看呢。应该没有这个问题的,要不用session看看Top
2 楼Miracle(新一代的开山怪)回复于 2004-12-04 13:26:19 得分 80
没有实际用过CookieContainer,看起来你的代码本身似乎没啥问题,在第二次请求之前,首先用CookieContainer.GetCookies取出所有Cookie并且把它们的值显示出来,看看跟预期的是不是一致?
另外,是否需要设置HttpWebRequest.Credentials?
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);
// Print the properties of each cookie.
foreach (Cookie cook in response.Cookies)
{
Console.WriteLine("Cookie:");
Console.WriteLine("{0} = {1}", cook.Name, cook.Value);
Console.WriteLine("Domain: {0}", cook.Domain);
Console.WriteLine("Path: {0}", cook.Path);
Console.WriteLine("Port: {0}", cook.Port);
Console.WriteLine("Secure: {0}", cook.Secure);
Console.WriteLine("When issued: {0}", cook.TimeStamp);
Console.WriteLine("Expires: {0} (expired? {1})",
cook.Expires, cook.Expired);
Console.WriteLine("Don't save: {0}", cook.Discard);
Console.WriteLine("Comment: {0}", cook.Comment);
Console.WriteLine("Uri for comments: {0}", cook.CommentUri);
Console.WriteLine("Version: RFC {0}" , cook.Version == 1 ? "2109" : "2965");
// Show the string representation of the cookie.
Console.WriteLine ("String: {0}", cook.ToString());
}
Top
3 楼newsz(爱江南)回复于 2004-12-04 14:12:29 得分 0
TO:Miracle(新一代的开山怪)
谢谢楼上两位,我先按你的方法试一下!
Top
4 楼NetFire(Fire.Rolland.Han)回复于 2004-12-04 14:16:20 得分 10
老M也在阿,呵呵Top
5 楼newsz(爱江南)回复于 2004-12-04 14:35:06 得分 0
TO:Miracle(新一代的开山怪)
按你的方法试了一下,可以显示出基本信息,域名,路径之类的!
但认证信息还是没有显示....
Top




