Я работаю с общедоступным сайтом 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?