写POST时经常回遇到这样的情况,建议 new HttpItem 时 另外在添加一个属性 是否自动更新Cookie 。如果提交了Cookie 并且 是否自动更新Cookie为true时,http.GetHtml( item );返回的Cookie 为自动更新后的Cookie。
[C#] 纯文本查看 复制代码 /// <summary>
/// 自动更新Cookie 返回更新后结果
/// </summary>
/// <param name="_cookie_New">新Cookie</param>
/// <param name="_cookie_old">旧Cookie</param>
/// <returns>返回更新后的Cookie</returns>
internal static string GetMergeCookie(string _cookie_New,string _cookie_old)
{
if (string.IsNullOrWhiteSpace(_cookie_New))//新的是空的
{
return _cookie_old;//返回老的
}
if (string.IsNullOrWhiteSpace(_cookie_old))//老的是空的
{
return _cookie_New;//返回新的
}
List<string> cookielist = new List<string>();//结果
string[] list_New = _cookie_New.ToString().Split(';');
string[] list_old = _cookie_old.ToString().Split(';');
foreach (string item in list_New)
{
//排除重复项
if (cookielist.Contains(item)) continue;
//对接Cookie基本的Key和Value串
cookielist.Add(string.Format("{0} ", item));
}
foreach (string item in list_old)
{
//排除重复项
if (cookielist.Contains(item)) continue;
//对接Cookie基本的Key和Value串
cookielist.Add(string.Format("{0}", item));
}
return string.Join("; ", cookielist);
}
|