C# HttpClient няма да добавя бисквитки от CookieContainer към заявка

Бисквитките от CookieContainer не се добавят към заявки за получаване или публикуване. Други хедъри работят без проблем. Какъв е правилният начин за добавяне на бисквитки? Правил съм това преди без проблем, но не мога да открия грешката тук.

var cookieContainer = new CookieContainer();

var handler = new HttpClientHandler();
handler.AllowAutoRedirect = true;
handler.UseCookies = true;
handler.CookieContainer = cookieContainer;

var baseAddress = new Uri("https://www.example.se");
cookieContainer.Add(baseAddress, new Cookie("Testing", "Test"));    
//This did not work either
//cookieContainer.Add(baseAddress, new Cookie("Testing", "Test", "/"));     

using (var client = new HttpClient(new LoggingHandler(handler)))
    {
        client.BaseAddress = baseAddress;
        client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36");
        client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
        client.DefaultRequestHeaders.Add("Accept-Language", "sv-SE,sv;q=0.8,en-US;q=0.6,en;q=0.4");

        var getResponse = client.GetAsync("/test").Result;

        string responseString = getResponse.Content.ReadAsStringAsync().Result;
    }

LoggingHandler: https://stackoverflow.com/a/18925296/3850405

въведете описание на изображението тук


person Ogglas    schedule 07.04.2017    source източник
comment
Можете ли да опитате претоварването на Cookie ctor, което също приема път като 3-ти параметър и след това да добавите /test като пътя и след това да опитате отново, за да видите дали това прави очаквания резултат. Ако това работи, можем да работим обратно, за да го накараме да работи в това, на което първоначално се надявахте,   -  person rene    schedule 07.04.2017


Отговори (1)


По някаква причина бисквитките не са в заглавките HttpRequestMessage при използване на CookieContainer. Ако проверих моя CookieContainer обект, те все пак бяха там.

var cookieList = new List<Cookie>();

foreach (Cookie cookie in cookieContainer.GetCookies(baseAddress))
{
    cookieList.Add(cookie);
}
person Ogglas    schedule 07.04.2017