Вниз
Скачать: CL | DM;

Cookie в WinInet   Найти похожие ветки 

 
Derk   (2007-12-07 16:01) [0]

Здравствуйте!

Столкнулся с такой проблемой: не знаю как передать по http с помощью WinInet информацию о кукисах. Вкратце, я делаю так:

procedure TForm1.Button1Click(Sender: TObject);
var hI, hConnect, hFile:HInternet;
   Header:PChar;
begin
 hI:=InternetOpen("UserAgent", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 hConnect:=InternetConnect(hI, "127.0.0.1", 80, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
 hFile:=HTTPOpenRequest(hConnect, "GET", "/", HTTP_VERSION, nil, nil, INTERNET_FLAG_RELOAD, 0);

 Header:="MyX-Header: tram-pararam";
 HttpAddRequestHeaders(hFile,Header,Length(Header),HTTP_ADDREQ_FLAG_ADD);
 HTTPSendRequest(hFile, nil, 0, nil, 0);

 InternetCloseHandle(hFile);
 InternetCloseHandle(hConnect);
 InternetCloseHandle(hI);
end;

И все работает отлично. Но стоит заменить Header:="MyX-Header: tram-pararam"; на Header:="Cookie: A=B;"; и этот заголовк не посылается.

Пробовал вместо

HttpAddRequestHeaders(hFile,Header,Length(Header),HTTP_ADDREQ_FLAG_ADD);
HTTPSendRequest(hFile, nil, 0, nil, 0);


поставить

HTTPSendRequest(hFile, Header,Length(Header), nil, 0);

Такая же ерунда, любые заголовки, кроме Cookie проходят нормально.

Если кто знает, в чем дело, подскажите пожалуйста.


 
MetalFan ©   (2007-12-09 14:41) [1]

как проверял? что куки не уходят..


 
MetalFan ©   (2007-12-09 15:01) [2]

аа) ну да, если не указан INTERNET_FLAG_NO_COOKIES в HTTPOpenRequest, то WinInet сам с куками работает и твои куки в хидере вычищает.


 
Derk   (2007-12-10 09:21) [3]

Проверял - поставил себе SmallHttpServer, коннектюсь на 127.0.0.1:80, он мне показывает все заголовки запроса. У Инди нормально видны куки, у WinInet"a нет куков... Сейчас попробую с флагом поэкспериментировать


 
Derk   (2007-12-10 09:58) [4]

Все отлично! Теперь работает. Только меня немного смущает описание этого флага

INTERNET_FLAG_NO_COOKIES

Does not automatically add cookie headers to requests, and does not automatically add returned cookies to the cookie database.

Не добавляет автоматически принятые куки в базу данных - это куда, в кэш чтоли?


 
MetalFan ©   (2007-12-10 10:43) [5]


> в кэш чтоли?

угу



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
2-1227018456
abhtr
2008-11-18 17:27
2008.12.28
Как программно создать Paradox таблицу с Table type = Paradox 3.5


2-1226992902
RamzesIII
2008-11-18 10:21
2008.12.28
TQRCahr


8-1188655791
Dr. Andrew
2007-09-01 18:09
2008.12.28
Как программно вызвать палитру цветов от кнопки как в MS Word?


3-1212217646
Dron2
2008-05-31 11:07
2008.12.28
Сложение текстовых полей в запросе


2-1226904399
Rav4
2008-11-17 09:46
2008.12.28
Подсчитать вещественные числа в Listbox




   Наверх