运行 UWP 应用*
所以我有一个 HttpClient 及其关联的处理程序。我正在向网站发出请求,传入指定的标头,并使用指定的 CookieContainer,该 CookieContainer 在请求开始时为空。
当我发送请求时,Fiddler 显示正在发送但我尚未添加的额外 cookie。他们来自哪里?
CookieContainer cookieJar = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler( );
handler.UseDefaultCredentials = false;
handler.CookieContainer = cookieJar;
handler.Proxy = null;
using (var client = new HttpClient(handler as HttpClientHandler))
{
HttpResponseMessage response = new HttpResponseMessage();
String loginUrl = Const.BUNGIE_LOGIN_URI + (provider == Const.XBOX_PLATFORM ? Const.XBOX_LOGIN : Const.PS_LOGIN);
client.BaseAddress = new Uri(loginUrl);
//client.Timeout = new TimeSpan(0, 0, 0, 0, 450);
client.DefaultRequestHeaders.Add("Referer", "http://www.bungie.net");
client.DefaultRequestHeaders.Add("User-Agent", Const.USERAGENT);
client.DefaultRequestHeaders.Add("X-API-Key", Const.X_API_KEY);
client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
client.DefaultRequestHeaders.Add("Accept", "application/json");
client.DefaultRequestHeaders.Add("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
handler.AutomaticDecompression = DecompressionMethods.GZip;
response = client.GetAsync("").Result;
response.ReadCookies(); //adds cookies to cookieJar
}
小提琴手显示什么
现在,作为相关CookieContainer
在发出请求之前是空的,这些cookie从哪里来?它们可以访问吗?如果我想要它们的值,我该如何获取它们?
编辑:它们从哪里添加到我的 HttpClient 请求中? HttpClient 有通用的 CookieContainer / 缓存吗?我有两个单独的 HttpClient 实例,当客户端 (A) 发出请求时,它收到一个“set-cookie”标头,设置一个“错误的”cookie。
随后,HttpClient 的一个单独实例(客户端 (B))向同一网站发出请求,并发送客户端 (A) 中设置的 cookie。
我没有明确地将这个 cookie 附加到客户端 (B) 的请求中,那么它是如何添加的呢?