Столкнулся с проблемкой - не могу почистить куки, когда использую wininet. Поиск гугла и ачата ничего вразумительного не дал. Делаю запрос используя код: Code: function fSendRequest(chHost, chPath: PChar):string; var hInternet: Pointer; hConnect: Pointer; hRequest: Pointer; BuffData: Char; ReadData: Cardinal; FullData: String; begin hInternet := InternetOpen('Approove', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); hConnect := InternetConnect(hInternet, chHost, INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0); hRequest := HttpOpenRequest(hConnect, 'GET', chPath, nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0); HttpSendRequest(hRequest, nil, 0, nil, 0); while (TRUE) do begin InternetReadFile(hRequest, @BuffData, SizeOf(BuffData), ReadData); if ReadData = 0 then break; FullData := FullData + BuffData; end; InternetCloseHandle(hRequest); InternetCloseHandle(hConnect); InternetCloseHandle(hInternet); result := FullData; end; Проснифав трафик, запрос получается такой: Code: GET /index HTTP/1.1 User-Agent: Approove Host: pda.vkontakte.ru Connection: Keep-Alive Cookie: remixlang=0; remixchk=5; remixmid=XXX; remixemail=XXX; remixpass=XXX; remixsid=XXX; remixcookiecheck=1 Все что находится в хэдре Cookie, он видимо берет из IE, если в нем есть сохраненные эти куки. Вопрос: Как удалить все куки этого сайта? P.S. Пока не охота переходить с WinInet на WinSock - много кода лишнего каждый раз писать придется.
присоединяюсь к вопросу, уперся в эту же проблему, куки всегда одни, должен же быть способ а сам прикол что если куки из HTTPS то имя файла у них рандомное =( даже не удалить толком а повторная установка или вызов глобальной очистки нечего не дают
Code: hRequest := HttpOpenRequest(hConnect, 'GET', chPath, nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_AUTO_REDIRECT, 1);
без редиректа и совсем без кукисов =/ это не то нужно чтобы запрос был с редиректом и с кукисами но кукисы не сохранил сейчас копаю в сторону InternetSetOption INTERNET_OPTION_SUPPRESS_BEHAVIOR INTERNET_SUPPRESS_COOKIE_POLICY
Ну так добавь их сам. Прежде спарсь их (без редиректа) Code: HttpAddRequestHeaders(hRequest, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", strlen("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"), HTTP_ADDREQ_FLAG_ADD); HttpAddRequestHeaders(hRequest, "КУКИСЫ",strlen("КУКИСЫ"), HTTP_ADDREQ_FLAG_ADD);
я поспорил что IE сделает это сам =( если бы я думал как спарсить заголовки то заюзал бы CURL и не ебал бы вам мозги. короче мне нужно wininet.dll заставить забыть куки после запроса и записать новые при новом запросе