Вверх ↑
Ответов: 4671
Рейтинг: 768
#1: 2013-05-03 13:59:38 ЛС | профиль | цитата
Итак, все желающие могут протестировать работу с куки.

В архиве находятся 3 компонента:

URLParser - разбор URL-адресов на составляющие.

Если адреса в программе не будут меняться - для работы с куки в нём нет необходимости. Но он полезен при автоматизированном разборе адресов и выполнении запросов.

HTTP_Response - разбор ответов сервера по протоколу HTTP.

Разделяет ответ сервера на заголовки, тело и куки. Наиболее полезные заголовки вынесены на точки.

CookieManager - управление куки.

Получает куки из HTTP_Response, сохраняет/загружает их из файла, выдаёт необходимые куки для вставки в запросы.
На данный момент параметр куки "domain" сохраняется, но не учитывается при принятии решения про отправку куки на указанный хост, так как после многочасового курения RFC я не полностью уверен в правильности алгоритмов. Поэтому куки отправляются на тот домен, с которого они получены.

Для демонстрации работы используется схема "HTTP requester.sha" и тестовая страница test.php.
Куки, для которых не истек срок годности, "HTTP requester" при выходе сохраняет в файле "cookies.txt" рядом с собой и загружает их при старте.

После учтения всех замечаний компоненты будут выложены в "Компоненты"

Компоненты не работают под FPC из-за глюка функции KOL.StrScan при ненахождении искомого символа. Кому надо - можете заменить функцию StrScan в файле compiler/fpc/kol.pas на эту:



#pas
function StrScan(Str: PChar; Chr: Char): PChar;
begin
Result := nil;
while (Str^ <> #0) do
begin
if (Str^ = Chr) then
begin
Result := Str;
exit;
end;
Inc(Str);
end;
end;

карма: 26

1
Голосовали:RinniX