You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Leaf.xNet如何按Cookie名称解析为变量 可使用SubString方法实现

Leaf.xNet 按名称提取Cookie的SubString实现方案

实现逻辑

核心是直接从响应的Set-Cookie头原始文本中定位目标Cookie的位置,再通过SubString截取对应值:

  • 先从HttpResponse的响应头中读取所有Set-Cookie的原始内容
  • 检索目标Cookie名加等号的字符串下标,确认Cookie存在
  • 跳过Cookie名称和等号,定位到Cookie值的起始下标
  • 查找Cookie值的结束标识(通常为分号,分隔Cookie属性,若没有则取字符串末尾)
  • 调用SubString截取起始到结束位置的内容,赋值为变量

完整代码示例

using Leaf.xNet;
using System;

namespace CookieExtractDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var httpRequest = new HttpRequest())
            {
                // 发送HTTP请求获取响应
                HttpResponse httpResp = httpRequest.Get("https://example.com");
                
                // 配置要提取的目标Cookie名称
                string targetCookie = "uid";
                string cookieValue = string.Empty;

                // 读取Set-Cookie头原始内容
                string rawCookieHeader = httpResp.Headers["Set-Cookie"] ?? "";

                // SubString解析核心逻辑
                int namePos = rawCookieHeader.IndexOf($"{targetCookie}=");
                if (namePos != -1)
                {
                    // 定位值的起始位置(跳过Cookie名和等号)
                    int valStart = namePos + targetCookie.Length + 1;
                    // 定位值的结束位置
                    int valEnd = rawCookieHeader.IndexOf(';', valStart);
                    valEnd = valEnd == -1 ? rawCookieHeader.Length : valEnd;
                    // 截取Cookie值
                    cookieValue = rawCookieHeader.Substring(valStart, valEnd - valStart);
                }

                // 测试输出
                Console.WriteLine($"提取到的{targetCookie}值:{cookieValue}");
            }
        }
    }
}

补充说明

若没有强制要求必须用SubString实现,Leaf.xNet自带的Cookie容器已经封装了成熟的解析逻辑,可以直接调用:

cookieValue = httpRequest.Cookies.GetCookies("https://example.com")[targetCookie]?.Value ?? "";

该方式无需自己处理下标计算,适配多Cookie、特殊Cookie值的场景稳定性更高。

内容的提问来源于stack exchange,提问作者user15980236

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:27:03