小网站中我们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; }
在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...
Application 对象用于存储和访问来自任意页面的变量,类似 Session 对象。不同之处在于所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的。很多的书籍中介绍的Application对象都喜欢以统计在线人数来介绍Application 对象...
1.远程仓库的协作模式开发者把自己最新的版本推到线上仓库,同时把线上仓库的最新代码,拉到自己本地即可2.注册git帐号国外: http://www.github.com国内: http://git.oschina.net2.在码云创建项目,不要初始化readmegit push https://gi...
日志查看:git log版本切换:方式1:git reset --hard HEAD^ 倒退一个版本git reset --hard HEAD^^ 倒退两个版本方式2:(版本号的形式,建议版本号码补充完...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...