Ответные файлы cookie не помещаются в словарь cookie-файлов клиента Flurl. - PullRequest
0 голосов
/ 08 мая 2019

Я работаю с общедоступным сайтом https://studia3.elka.pw.edu.pl, используя Flurl.Http._restClient получен от PerBaseUrlFlurlClientFactory с адресом https://studia3.elka.pw.edu.pl/pl/. По определенному запросу он должен отправить мне cookie для дальнейшего использования.Я получаю файл cookie в ответе (он находится в разделе заголовков), но файл cookie отсутствует в словаре файлов cookie моего клиента (где, я думаю, он должен появиться после получения ответа)

Мой код для выполнения запросаи чтение ответа выглядит следующим образом:

 private const string StudiaIdCookieName = "STUDIA_SID";


var cook = new Cookie(name: "STUDIA_COOKIES", value: "YES&", path: "/", domain: ".studia3.elka.pw.edu.pl");

        var unauthenticatedCookiesRequest = _restClient.Request().WithCookie(cook);

        var unauthenticatedCookiesResponse = await unauthenticatedCookiesRequest.SendAsync(verb: HttpMethod.Get);

        if (!_restClient.Cookies.ContainsKey(key: StudiaIdCookieName))
            throw new Exception(message: "Failed to get unauthenticated cookie from Studia");

        var authenticateCookieRequest = _restClient.Request().AppendPathSegment(segment: LdapPathSegment);

        var authenticateCookieResponse = authenticateCookieRequest.PostUrlEncodedAsync(data:
            new { studia_login = username, studia_passwd = password });

Проблема с

    if (!_restClient.Cookies.ContainsKey(key: StudiaIdCookieName))
        throw new Exception(message: "Failed to get unauthenticated cookie from Studia");

, поскольку _restClient.Cookies содержит только cookie-файл, который я настроил вручную, а не тот из ответа (Cookie-файл ответа называется STUDIA_SID и присутствует в разделе заголовков, когда я просматриваю ответ в отладчике.)

Мой вопрос: должно ли свойство Cookies отражать изменения при создании запроса?Если нет, я должен вручную проверить заголовки и извлечь из них cookie?

...