![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Проблемма распространёная, т.к. от версии к версии у indy всегда проблемы.
Пробывал спарсить так: Код:
For N:=0 To Http.Response.RawHeade rs.Count-1 Do
Begin
If Http.Response.Raw Headers.Names[N]='Set-Cookie' Then
Begin
CookieList.Add(Http.Response.R awHeaders.ValueFromIndex[N]);
End;
End;
Cookie вида Set-Cookie:usNick=...; expires=Sat, 19 Mar 2011 01:34:06 GMT Set-Cookie:usPass=...; expires=Sat, 19 Mar 2011 01:34:06 GMT как их спарсить и передать не пойму, прошу помощи, уже незнаю даже куда рыть на ваш форум последняя надежда |
|
#2
|
||||
|
||||
|
Код:
IdHTTP1.Get('http://ya.ru/');
IdHTTP1.Response.RawHeaders.Extract('Set-Cookie', Memo1.Lines); |
|
#3
|
|||
|
|||
|
NumLock это понятно, я имел ввиду что если делать так
Код:
For N:=2 To FH.Response.Ra wHeaders.Count-1 Do
Begin
If FH.Respons e.RawHeaders.Names[N]='Set-Cookie' Then
Begin
CookieList.Add(FH.Response.RawHe aders.ValueFromIndex[N]);
End;
End;
for N := 0 to CookieList.Count-1 do
ShowMe ssage(CookieList[N]); Login; expires=Sat, 19 Mar 2011 01:34:06 GMT Password; expires=Sat, 19 Mar 2011 01:34:06 GMT но как тогда обрезать expires=Sat, 19 Mar 2011 01:34:06 GMT |
|
#4
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdCookieManager, StdCtrls, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP;
type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Memo1: TMemo;
IdCookieManager1: TIdCookieManager;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
IdHTTP1.Get('http://forum29.ru');
for i:=0 to IdCookieManager1.CookieCollection.Count-1 do
Memo1.Lines.Add(IdCookieManager1.CookieCollection[i].CookieName+'='+IdCookieManager1.CookieCollection[i].Value);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
IdHTTP1.CookieManager:=IdCookieManager1;
end;
end. |
|
#5
|
||||
|
||||
|
Можно еще про функцию Pos(';', ...) вспомнить, если именно HTTP заголовки парсить.
И причем тут проблемы инди - это стандартный формат заголовков, а expires задает время, до которого будет действительно ( надо хранить ) это значение куков. ( если я правильно помню ) |
|
#6
|
|||
|
|||
|
вобще я думал что expires=Sat, 19 Mar 2011 01:34:06 GMT задаёт сначала время получения куков, т.к. у меня не истекают, значет должен ещё один параметр передаваться, интрегующе звучит, чтож буду знатиь, а с POS у меня не получиться т.к их от одного и более там может быть
Последний раз редактировалось bulldog, 27.12.2010 в 15:41. |