Здравствуйте!
Столкнулся с такой проблемой: не знаю как передать по 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 проходят нормально.
Если кто знает, в чем дело, подскажите пожалуйста.