从Header中获得信息

/// <summary>
/// 获得header信息
/// </summary>
/// <param name="response"></param>
private void GetHeader(HttpResponseMessage response)
{
    var headers = response.Headers.ToString().Split(new[] { '
', '
' }, StringSplitOptions.RemoveEmptyEntries);
    Dictionary<string, string> dictionary = new Dictionary<string, string>();
    foreach (var header in headers)
    {
        //必须规定劈分两个,否则Set-Cookie会遗失数据
        string[] splitStr = header.Split(new char[] { ':' }, 2);
        var name = splitStr[0];
        var value = splitStr[1].Trim();
        dictionary.Add(name, value);
    }
    //HeaderData是自定义类对象,存储header信息
    headerData = new HeaderData();
    var cookiePairs = dictionary["Set-Cookie"];
    headerData.YourKeyword = GetValueByRegex(cookiePairs, "your keyword");
}

private static string GetValueByRegex(string cookieStr, string pattern)
{
    Regex regex = new Regex($"{pattern}=(\S+);");
    Match match = regex.Match(cookieStr);
    var pair = match.Groups[0].Value;
    pair = pair.TrimEnd(';');
    string[] keyAndValue = pair.Split('=');
    string value = keyAndValue[1];
    return value;
}
原文地址:https://www.cnblogs.com/Lulus/p/8513050.html