http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

楼主: 枫子

[C#语言基础] c# webbrowser怎么使用一个字符串的cookies啊?

[复制链接]
发表于 2013-5-9 11:53:11 | 显示全部楼层
yangying 发表于 2013-5-9 11:09
贴下你的代码看看,另外发一个你获取的两边Cookie的截图看一下吧

在那里呢,没看到,你能错了吧,我是女生你叫大哥


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-5-9 12:29:23 | 显示全部楼层
  1.         private void 执行登录方法()
  2.         {
  3.             string LoginURL = "http://caibian.cmed.org.cn/";
  4.             //string cookiesss = "KOSSID=25b54d6d99d07b8c5d99fca193157324";
  5.             //webBrowser1.Document.Cookie = cookiesss;
  6.             webBrowser1.Navigate(LoginURL);
  7.             MessageBox.Show("获取的cookies"+GetCookieString(LoginURL));
  8.    
  9.         }
  10.         private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
  11.         {
  12.             MessageBox.Show(webBrowser1.Document.Cookie);
  13.         }

  14.         //取当前webBrowser登录后的Cookie值   
  15.         [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
  16.         static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref int pcchCookieData, int dwFlags, object lpReserved);
  17.         //取出Cookie,当登录后才能取   
  18.         private static string GetCookieString(string url)
  19.         {
  20.             // Determine the size of the cookie      
  21.             int datasize = 256;
  22.             StringBuilder cookieData = new StringBuilder(datasize);
  23.             if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
  24.             {
  25.                 if (datasize < 0)
  26.                     return null;
  27.                 // Allocate stringbuilder large enough to hold the cookie   
  28.                 cookieData = new StringBuilder(datasize);
  29.                 if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
  30.                     return null;
  31.             }
  32.             return cookieData.ToString();
  33.         }
复制代码
抱歉,刚才发了 发现没有成功显示,我重新发了遍。
未命222名.jpg
发表于 2013-5-9 13:08:14 | 显示全部楼层
我不是让你在webBrowser1中这样看Cookie是这样的
1.在webBrowser1中先直接在webBrowser1中的页面中登录成功,然后获取Cookie看看什么样子
2.使用你的抓包工具,或者是你直接赋值的Cookie和上面的Cookie比较一下
 楼主| 发表于 2013-5-9 14:13:52 | 显示全部楼层
@yangying
1. 直接在webbrowser登录之后的cookies:
1.jpg

2.使用httpwatch登录之后获取到的cookies:
2.jpg



3.jpg

这几个cookies都是一样的
发表于 2013-5-9 14:17:21 | 显示全部楼层
枫子 发表于 2013-5-9 14:13
@yangying
1. 直接在webbrowser登录之后的cookies:

那安说不应该不行啊,如果是一样的,直接把网页上登录成功 的cookie给webbrowser使用是肯定可以的。
你给webbrowser的是登录成功之后的Cookie吗?
 楼主| 发表于 2013-5-9 14:20:58 | 显示全部楼层
yangying 发表于 2013-5-9 14:17
那安说不应该不行啊,如果是一样的,直接把网页上登录成功 的cookie给webbrowser使用是肯定可以的。
你给 ...

这个是一个问题,因为我有发现 登录之前和登录之后 这个cookies并没有发生变化,cookies的内容应该是seesion的一个ID标识。

但是奇怪的是,我使用httphelper 传这个同样的cookies就可以登录。
发表于 2013-5-9 14:25:02 | 显示全部楼层
枫子 发表于 2013-5-9 14:20
这个是一个问题,因为我有发现 登录之前和登录之后 这个cookies并没有发生变化,cookies的内容应该是sees ...

客户端是没有变化但是服务器上肯定是变化了啊,登录之前的Cookie是不能应用到登录之后的,你在网页上登录以后的Cookie 放webbrowser中应该是可以了
发表于 2013-5-9 14:25:56 | 显示全部楼层
站长苏飞 发表于 2013-5-9 14:25
客户端是没有变化但是服务器上肯定是变化了啊,登录之前的Cookie是不能应用到登录之后的,你在网页上登录 ...

恩是的
 楼主| 发表于 2013-5-9 14:29:07 | 显示全部楼层
站长苏飞 发表于 2013-5-9 14:25
客户端是没有变化但是服务器上肯定是变化了啊,登录之前的Cookie是不能应用到登录之后的,你在网页上登录 ...

我上面使用的获取cookies的方法 获取到的也是我登录后的cookies啊。
虽然这个cookies和我没登录之前是一样的。
因为服务器有变化,所以我传入这个cookies的话,应该就会告诉服务器,我已经登录了
发表于 2013-5-9 14:32:05 | 显示全部楼层
枫子 发表于 2013-5-9 14:29
我上面使用的获取cookies的方法 获取到的也是我登录后的cookies啊。
虽然这个cookies和我没登录之前是一 ...

应该是这样,只是也许不一定光验证的cookie这个还要看具体情况
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 06:50

© 2014-2021

快速回复 返回顶部 返回列表