Встроенный Windows.Web.Http.HttpClient
может управлять файлами cookie, если вы передаете экземпляр HttpBaseProtocolFilter
его конструктору. В этом классе есть свойство CookieManager
, которое содержит файлы cookie, и вы даже можете изменить его и добавить свои собственные файлы cookie для следующих запросов.
Однако вместо этого вы должны ссылаться на пакет System.Net.Http
NuGet и использовать его HttpClient
, который всегда актуален и регулярно обновляется. В этом случае класс HttpClient
принимает экземпляр HttpClientHandler
в своем конструкторе, и этот класс, в свою очередь, имеет свойство CookieContainer
, которое работает аналогично CookieManager
в Windows.Web.Http
.
System.Net.Http.HttpClient
Отправить пользовательский файл cookie
var handler = new HttpClientHandler()
{
CookieContainer = new System.Net.CookieContainer(),
UseCookies = true
};
var client = new System.Net.Http.HttpClient(handler);
handler.CookieContainer.Add(targetUri, new System.Net.Cookie("name", "value"));
var response = await client.GetAsync(targetUri);
Получить печенье
var cookie = handler.CookieContainer["name"];
Windows.Web.Http.HttpClient
Отправить пользовательский файл cookie
var filter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter()
{
CookieUsageBehavior = Windows.Web.Http.Filters.HttpCookieUsageBehavior.Default
};
filter.CookieManager.SetCookie(new Windows.Web.Http.HttpCookie("name", "domain", "path")
{
Value = "value"
});
var client = new Windows.Web.Http.HttpClient(filter);
var response = await client.GetAsync(targetUri);
Получить печенье
var cookie = filter.CookieManager.GetCookies(targetUri).
FirstOrDefault(cookie => cookie.Name == "name");