eXeL@B —› Программирование —› GET (POST) +Cookies [Delphi] |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 05 августа 2008 19:36 · Поправил: Isaev · Личное сообщение · #1 Нужно перейти по двум ссылкам, учитывая cookies при клике по второй... (чтобы сайт думал, что это тот же юзер дальше кликает, а не кто-то другой по прямой ссыли зашёл) С куками раньше не работал, поэтому туплю что-то... делаю так: // на Form лежит IdHTTP1, IdCookieManager1
вроде всё логично, но не пашет... где чего добавить надо? и снифер гонял, вроде больше сайт ничего не шлёт... короче или я какую-то мелочь упустил или всё не так просто, как кажется ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 05 августа 2008 20:35 · Личное сообщение · #2 |
|
Создано: 05 августа 2008 20:53 · Личное сообщение · #3 |
|
Создано: 05 августа 2008 21:10 · Личное сообщение · #4 |
|
Создано: 05 августа 2008 21:20 · Личное сообщение · #5 |
|
Создано: 05 августа 2008 22:16 · Личное сообщение · #6 Azur1d пишет: Попробуй куки вручную задать. ??? не понял... так они же при каждом входе разные... смысл их задавать в ручную? Stack пишет: я запаметовал что в индюшке куки глючат. Что совсем безнадёжно? Лучше без инди обходиться? а я вот как-то обычно через неё всегда всё делал... Пока с куками не столкнулся. ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 06 августа 2008 01:36 · Поправил: Isaev · Личное сообщение · #7 Короче разница только в том, что Opera посылает дополнительно Cookie2 '$Version=1'
что это и куда вставить хз... и надо ли? Ещё POST'ом запускается 1 файлик php... Может всё дело в нём... Вряд ли наверное можно его программно запустить... или можно? HttpAnalyzer кстати imho удобнее... ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 06 августа 2008 01:46 · Поправил: Dr3d · Личное сообщение · #8 Cookie2 $Version=1 Это чиста оперное TE deflate, gzip, chunked, identity, trailers Это желательно оставить, но и без него будет работать (gzip надо убрать, если не хотите сами расшифровывать страницу) "Запустить пхп файлик", забавно звучит. Этот файлик на сервере обрабатывается и запускается он как раз запросами типа ГЕТ или ПОСТ А вообще встроенные компоненты - зло. Юзайте WSA, ну или хотябы TCP-клиента, заголовки разбирать вручную, это не сложно. |
|
Создано: 06 августа 2008 01:52 · Личное сообщение · #9 |
|
Создано: 06 августа 2008 10:57 · Личное сообщение · #10 |
|
Создано: 06 августа 2008 12:36 · Поправил: Isaev · Личное сообщение · #11 |
|
Создано: 06 августа 2008 13:35 · Личное сообщение · #12 |
|
Создано: 06 августа 2008 18:09 · Личное сообщение · #13 |
|
Создано: 06 августа 2008 18:13 · Поправил: Isaev · Личное сообщение · #14 Разобрался... ни кто не подскажет как проверить статус интернет соединения? пробую function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL'
или const
или function IsInternetConnected: Boolean;
отключаю кабель от модема, а они всё равно TRUE возвращают... Есть другие способы? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 06 августа 2008 18:23 · Личное сообщение · #15 |
|
Создано: 06 августа 2008 18:31 · Поправил: ajax · Личное сообщение · #16 Uses WinInet; Const INTERNET_CONNECTION_CONFIGURED = $40; INTERNET_CONNECTION_LAN = $02; INTERNET_CONNECTION_MODEM = $01; INTERNET_CONNECTION_OFFLINE = $20; INTERNET_CONNECTION_PROXY = $04; INTERNET_RAS_INSTALLED = $10; Var iState : Longword; hHttpSession, hReqUrl : HInternet; Begin Result:=InternetGetConnectedState(@InetState,0); if Result and (InetState and INTERNET_CONNECTION_CONFIGURED = INTERNET_CONNECTION_CONFIGURED) then begin hHttpSession:=InternetOpen(PChar(Application.Title),INTERNET_OPEN_TYPE _PRECONFIG,nil,nil,0); try hReqUrl:=InternetOpenURL(hHttpSession,'http://www.google.com',nil,0,0, 0); Result:=hReqUrl <> nil; InternetCloseHandle(hReqUrl); finally InternetCloseHandle(hHttpSession); end; end else if (InetState and INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE then Result:=False; End; Dr3d При пинге может подниматься диалап, если настроен. Что есть не айс. ----- От многой мудрости много скорби, и умножающий знание умножает печаль |
|
Создано: 06 августа 2008 18:57 · Личное сообщение · #17 |
|
Создано: 06 августа 2008 20:25 · Личное сообщение · #18 |
|
Создано: 06 августа 2008 20:28 · Поправил: xShadow · Личное сообщение · #19 |
|
Создано: 06 августа 2008 21:28 · Личное сообщение · #20 |
|
Создано: 06 августа 2008 22:38 · Поправил: Isaev · Личное сообщение · #21 Dr3d пишет: встроенные компоненты - зло. xShadow пишет: Indy зло одно зло вокруг! xShadow поставил... Гигант! Пока попробую без него обойтись. а про synapse кто что скажет? Dr3d пишет: пингуй яндекс нашёл примерчик ping'а на 2 страницы - жуть, но работает Нужен чекер инета! Чтобы чекал безошибочно, на таймере 2сек (он конечно не будет так работать, но чтобы успевал) и не подвешивал приложение ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 07 августа 2008 11:07 · Личное сообщение · #22 |
|
Создано: 07 августа 2008 20:46 · Личное сообщение · #23 |
|
Создано: 08 августа 2008 10:31 · Личное сообщение · #24 Всем доброго дня! Редко пишу на этом форуме, но тут возник вопрос, схожий с названием данной темы. Есть ли какие библиотеки для работы с http-пакетами как со структурами? Для получения, напр., адреса хоста, или еще какого параметра... Можно, конешна, самому это по бырому накатать, но зачем мне велосипед? Спрашиваю про стадартные апи, поэтому язык - побоку. Извините, что вклинился. Заранее, сенкс! |
|
Создано: 08 августа 2008 19:10 · Личное сообщение · #25 Isaev, делал тулзу для себя "ShowIP", показывает Local IP, WAN IP, HOST и DNS (DNS - вбиваешь интернет адрес, креклаб, к примеру и программа возвращает IP), при отсутствии соединения, выпрыгивает окно с ошибкой "Socket-Fehler бла-бла", подкоррегировал на "You have no internet connection!!! Socket-Fehler бла-бла", обработка этой ошибки где-то в исходниках indy, по моему, ( у меня indy 9.0.18 стоит). Пользительная тулза для Peer-To-Peer, работает и через фаервол и через роутер. Сорцы сборные, где-то в интернете надёргал, в архиве сорцы для делфи и прога. 86db_08.08.2008_CRACKLAB.rU.tgz - ShowIP.zip |
|
Создано: 27 апреля 2010 05:28 · Поправил: Isaev · Личное сообщение · #26 Delphi, Indy, Get: Если в RawStream получаю несколько "Set-Cookie", например: Code:
Как проще их вытащить и установить? CookieManager цепляет только первую, на остальное забивает! доставал так: Code:
а как их в ручную вставить вообще? так не ставятся: Code:
так тоже не ставятся: Code:
и так не ставятся: Code:
И вообще это всё как-то громоздко и заморочено... Есть способы проще? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 27 апреля 2010 09:54 · Поправил: Azur1d · Личное сообщение · #27 Code:
И еще в последнем примере у тебя в куки пробел, Если в коде он тоже есть, то такая кука памойму не встанет. З.Ы. Где-то выше отсылали к Synapse. Попробуй ее, реально хорошая вещь. С инди на нее переходить не привычно, т.к. почти все заголовки нужно вручную писать. Но зато не бывает "странных глюков". |
|
Создано: 27 апреля 2010 17:27 · Личное сообщение · #28 Azur1d пишет: И еще в последнем примере у тебя в куки пробел, Если в коде он тоже есть, то такая кука памойму не встанет. нет пробелы форум расставляет Azur1d пишет: Где-то выше отсылали к Synapse. Попробуй ее, реально хорошая вещь. да надо наверное, часто слышу лестные отзывы. спс, так цепляются ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 31 марта 2012 17:29 · Поправил: Isaev · Личное сообщение · #29 |
|
Создано: 31 марта 2012 20:35 · Поправил: vptrlx · Личное сообщение · #30 Ну коротко это делается так: Code:
А подключение к интернету, кажется, необходимое условие для успеха функции WinHttpOpen: Code:
Но тут могу ошибаться, проверить сейчас не могу. |
. 1 . 2 . >> |
eXeL@B —› Программирование —› GET (POST) +Cookies [Delphi] |