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

RestSharp 109.1中CookieContainer消失致认证失效,如何获取认证Cookie?

RestSharp 109.1 升级后认证Cookie获取问题解决

RestSharp从109版本开始重构了Cookie管理逻辑,移除了RestClientOptions.CookieContainer选项,改用客户端内置的Cookie集合自动处理,这就是你升级后无法通过旧方式获取Cookie的原因。以下是具体解决方法:

核心变化说明

109+版本默认开启Cookie自动管理(UseCookies选项默认值为true),服务器返回的Cookie会自动存入RestClient.Cookies集合,不再需要手动配置CookieContainer。

修复后的代码示例

1. 配置RestClientOptions

var options109 = new RestClientOptions($"{realm.ConfigSource}")
{
    RemoteCertificateValidationCallback = (restclientsender, certificate, chain, sslPolicyErrors) => true,
    MaxTimeout = -1,
    // UseCookies默认是true,无需手动设置,若曾关闭则需开启
    // UseCookies = true
};

2. 执行登录请求并获取Cookie

var restclient = new RestClient(options109);

var loginrequest = new RestRequest("login", Method.Post)
{
    AlwaysMultipartFormData = true
};
loginrequest.AddParameter("username", realm.Username);
loginrequest.AddParameter("password", realm.Password);

var loginresult = await restclient.ExecuteAsync(loginrequest).ConfigureAwait(false);
log.LogInformation($"StatusCode:  {loginresult.StatusCode}");
log.LogInformation($"IsSuccessful:  {loginresult.IsSuccessful}");

// 从RestClient内置集合中获取认证Cookie
var authCookie = restclient.Cookies.FirstOrDefault(c => c.Name == "你的认证Cookie名称");
if (authCookie != null)
{
    log.LogInformation($"获取到认证Cookie: {authCookie.Name} = {authCookie.Value}");
}

// 额外检查:确认服务器是否返回了Set-Cookie响应头
var setCookieHeaders = loginresult.Headers.Where(h => h.Name.Equals("Set-Cookie", StringComparison.OrdinalIgnoreCase));
foreach (var header in setCookieHeaders)
{
    log.LogInformation($"服务器返回Set-Cookie头: {header.Value}");
}

关键注意事项

  • 不要在请求中手动设置CookieContainer,这是旧版本的用法,109+版本已不再支持
  • 若restclient.Cookies仍为空,先检查Set-Cookie头是否存在:如果服务器没返回该头,说明登录请求本身未触发Cookie下发;如果存在但客户端未存入,检查是否是跨域请求(需符合SameSite等Cookie规则)
  • 后续请求使用同一个RestClient实例时,自动会带上已保存的Cookie,无需手动添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:47:30