Jak używać cookies z punktu serwera HTTP?

0

Od dłuższego czasu szukam po całym internecie, jak używać cookies z punktu serwera HTTP Indy.
Znajduję jedynie jak obsługiwać ze strony klienta, co mi nie jest potrzebne.
Może ktoś zna jakiś pomocny artykuł do "samonauki", albo po prostu wytłumaczy, jak się tworzy nowe cookies i odczytuje te zapisane (no i jeszcze kasowanie starych by się przydało).
Posiadam pakiet Indy dołączony domyślnie do RAD Studio 10.1 Berlin SE.

0

Masz różne zdarzenia np. OnCommandGet których parametry takie jak ARequestInfo i AResponseInfo są odpowiednio typu TIdHTTPRequestInfo i TIdHTTPResponseInfo masz parametr Cookies więc tam się możesz bawić ciachami.

0

@kAzek właśnie w tym problem, że nie mogę znaleźć żadnego przykładu, wyjaśnienia jak tego używać, a sam nie znam się na tyle dobrze na Indy, by to samemu zrozumieć.

0

A nie ma niczego odpowiedniego w demówkach biblioteki?

0

Jest serwer Indy HTTP, lecz nie znalazłem tam żadnej wzmianki o cookies.

0

Ale co konkretnie chciałeś zrobić?

0

Wystarczy przykład jak dodać, usunąć i odczytać ciasteczko zawierające nazwę i wartość tekstową.

2

Odczyt wszystkich ciastek:

    for i:= 0 to ARequestInfo.Cookies.Count - 1 do
      Memo1.Lines.Add(ARequestInfo.Cookies.Cookies[i].CookieName + '=' + ARequestInfo.Cookies.Cookies[i].Value); //wpisuje do memo

Utworzenie (jeden z kilku sposobów)

        IdURI:= TIdURI.Create(ARequestInfo.Host);  //http://localhost
        try
          AResponseInfo.Cookies.AddServerCookie('nazwa=wartosc', IdURI);
        finally
          IdURI.Free;
        end;

Usunięcie ciacha (wydawałoby się że są przeznaczone do tego metody Delete i Clear ale działają. Znaczy usuwają tylko z listy ale przeglądarka nadal ciacho ma) dlatego trzeba to robić jak w PHP czyli przez ustawienie czasu wygaśnięcia na wcześniejszy. W ten sposób można też tworzyć z tym że ustawia się "normalny" czas Expires.

  IdCookie:= AResponseInfo.Cookies.Add;
  IdCookie.CookieName:= 'nazwa';
  IdCookie.Value:= 'wartosc';
  IdCookie.Expires:= Now - 3600; 
0

Dzięki, właśnie o taki przykład mi chodziło. No a jeśli chodzi o stronę, to zapewne jej nie znalazłem przez te ciasteczka :-) - u każdego wyniki są dostosowywane, do tego, co przeglądał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1