小网站中我们curl模拟登陆可能只需要保存一个登陆成功的Cookies就等请求全站权限,但是对于大网站则不可以,不同接口生成的cookies可能不同。
最新在编写微信网页版winform请求。需要将登陆的cookies更新内容特别整理。
//精简Cookie将自动去掉\r\n换行符号,path,expires,domain,去重复等多余选项 internal static string GetSmallCookie(string strcookie) { string result; if (string.IsNullOrWhiteSpace(strcookie)) { result = string.Empty; } else { List<string> list = new List<string>(); string[] array = strcookie.ToString().Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries); string[] array2 = array; for (int i = 0; i < array2.Length; i++) { string text = array2[i]; string text2 = text.ToLower().Trim().Replace("\r\n", string.Empty).Replace("\n", string.Empty); if (!string.IsNullOrWhiteSpace(text2)) { if (text2.Contains("=")) { if (!text2.Contains("path=")) { if (!text2.Contains("expires=")) { if (!text2.Contains("domain=")) { if (!list.Contains(text)) { list.Add(string.Format("{0};", text)); } } } } } } } result = string.Join(";", list); } return result; }
//合并Cookie的方法,参数请先使用GetSmallCookie()过滤后使用 public static string updateCookie(string oldcookie, string newcookie) { List<string> oldcookielist = new List<string>(); if (oldcookie.Contains(";")) oldcookielist = new List<string>(oldcookie.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries)); else oldcookielist.Add(oldcookie); List<string> newcookielist = new List<string>(); if (newcookie.Contains(";")) newcookielist = new List<string>(newcookie.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries)); else newcookielist.Add(newcookie); foreach (string cookie in newcookielist) { //Console.WriteLine("cookie:" + cookie); if (!string.IsNullOrWhiteSpace(cookie)) { if (!string.IsNullOrWhiteSpace(cookie.Split('=')[1])) //判断cookie的value值是为空,不为空时才进行操作 { bool isFind = false; //判断是否是新值 for (int i = 0; i < oldcookielist.Count; i++) { if (cookie.Split('=')[0] == oldcookielist[i].Split('=')[0]) { //oldcookielist[i].Split('=')[1] = cookie.Split('=')[1]; oldcookielist[i] = cookie; isFind = true; break; } } if (!isFind) //如果计算后还是false,则表示newcookie里出现新值了,将新值添加到老cookie里 oldcookielist.Add(cookie); } } } oldcookie = string.Empty; for (int i = 0; i < oldcookielist.Count; i++) oldcookie += oldcookielist[i] + ";"; return oldcookie; }
c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test  ...
在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...
日志查看:git log版本切换:方式1:git reset --hard HEAD^ 倒退一个版本git reset --hard HEAD^^ 倒退两个版本方式2:(版本号的形式,建议版本号码补充完...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
private const string fantizi = "高久峰是個程序員"; private const string jiantizi = "高久峰是个程序员...
方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...