小网站中我们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;
} 1.全局用户信息设置 git config --global user.name gaojiufeng git config --global user.email 392223903...
在安装之前我们先看看官方给出的依赖关系.首先是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...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
首先在阿里云申请免费的证书,选择自动生成证书。然后就是nginx虚拟主机配置文件的修改。以下是我的配置文件(因为公司开发小程序,没有办法只能使用https)。您只需要关注带有ssl的配置选项,我增加了一个监听80和443的端口,同时增加了http跳转https的配置server &nbs...