8.9获取响应 Cookie

创建于 2026 年 8 月 17 日约 1 分钟读完

HTTP 请求中,如果服务器设置了 Cookie,响应头中会包含一个或多个 Set-Cookie 键值对。客户端接收到响应后,可以通过读取这些 Set-Cookie 键值对来获取 Cookie 信息。框架提供了以下两种便捷的方式来获取 Cookie

1. 使用 HttpRemoteResult<TResult> 返回值类型

HttpRemoteResult<TResult> 是一个泛型类型,专门用于封装 HTTP 远程请求模块中的响应内容。该类型不仅包含了常用的 HTTP 响应信息,还提供了请求耗时等功能。

cs
// 使用请求谓词方式(result 类型为 HttpRemoteResult<string>)var result = await httpRemoteService.GetAsync<string>("https://furion.net/");var setCookies = result.SetCookies; // 获取响应中的 Cookie 集合(IList<SetCookieHeaderValue> 类型)var rawSetCookies = result.RawSetCookies; // 获取原始响应头中的 Set-Cookie 集合(List<string> 类型)// 使用构建器方式同样适用(result 类型为 HttpRemoteResult<string>)var result = await httpRemoteService.SendAsync<string>(HttpRequestBuilder.Get("https://furion.net/"));

2. 使用 HttpResponseMessageTryGetSetCookies 扩展方法

框架还为 HttpResponseMessageHttpResponseHeaders 类型提供了 TryGetSetCookies 扩展方法,可以方便地读取并解析 Set-Cookie 响应头信息。

cs
var httpResponseMessage = await httpRemoteService.GetAsync("https://furion.net/");httpResponseMessage.TryGetSetCookies(out var setCookies, out var rawSetCookies);// 或者通过 Headers 属性获取// httpResponseMessage.Headers.TryGetSetCookies(out var setCookies, out var rawSetCookies);

通过以上两种方式,开发者可以轻松获取并处理 HTTP 响应中的 Cookie 信息。