Fiddler 解析重复响应 header 键

Fiddler parse duplicate response header keys

来自服务器的 http 响应包含 headers。

Set-Cookie: A=AValue
Set-Cookie: B=BValue

当我尝试使用以下代码从 Fiddler 脚本获取值时:

oSession.oResponse["Set-Cookie"]

我只得到第一个,A=AValue

即使键重复,您知道如何获取这些值的完整列表吗?

您可以使用 headers 属性 关闭 oResponse 来获得完整的 collection,然后逐个枚举并找到它们。在 C# 中:

var headers = oSession.oResponse.headers.Where(h => h.Name == "Set-Cookie").ToList();

以下是在 JScript.NET(Fiddler 脚本)中的操作方法:

var headers = [];
var enumerator = oSession.oResponse.headers.GetEnumerator();
while(enumerator.MoveNext()) {
    var current = enumerator.Current;
    if (current.Name.ToLower() === "set-cookie") {
        headers.push(current.Value);
    }
}
enumerator.Dispose();

解释一下,这会遍历所有 header,检查名称,如果 header 的名称匹配,它会将值推入 headers 数组. while 循环后,headers 数组将包含 Set-Cookie header 的所有值。