不多说费话直接上代码
[C#] 纯文本查看 复制代码
/// <summary>
/// 根据字符生成Cookie和精简串,将排除path,expires,domain以及重复项
/// </summary>
/// <param name="strcookie">Cookie字符串</param>
/// <returns>精简串</returns>
internal static string GetSmallCookie(string strcookie)
{
StringBuilder sb = new StringBuilder();
//将Cookie字符串以,;分开,生成一个字符数组,并删除里面的空项
string[] list = strcookie.ToString().Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string item in list)
{
string itemcookie = item.ToLower().Trim().Replace("\r\n", string.Empty).Replace("\n", string.Empty);
//排除空字符串
if (string.IsNullOrWhiteSpace(itemcookie)) continue;
//排除不存在=号的Cookie项
if (!itemcookie.Contains("=")) continue;
//排除path项
if (itemcookie.Contains("path=")) continue;
//排除expires项
if (itemcookie.Contains("expires=")) continue;
//排除domain项
if (itemcookie.Contains("domain=")) continue;
//排除重复项
if (sb.ToString().Contains(item)) continue;
//对接Cookie基本的Key和Value串
sb.Append(string.Format("{0};", item));
}
return sb.ToString();
}
这个方法做不到完美,但基本上可以解决大部分的问题。
欢迎大家提建议
|