Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Про сокеты и IE


Автор: p0s0l 7.8.2003, 23:25
Fantasist в FAQ'е писал, что страницы можно открывать, посылая примерно такие запросы с помощью TClientSocket:
Код
const Request:AnsiString='GET / HTTP/1.1'+#$D#$A+
'Accept: application/vnd.ms-excel, application/msword, */*'+#$D#$A+
'Accept-Language: en-us'+#$D#$A+
'Accept-Encoding: gzip, deflate'+#$D#$A+
'User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)'+#$D#$A+
'Host: vingrad.com'+#$D#$A+
'Connection: Keep-Alive'+#$D#$A+#$D#$A;


А как мне узнать, какой запрос посылает IE, когда я нажимаю на какую-нибудь кнопку на странице?
Это наверняка просто, но с сокетами никогда не работал...

Автор: Fantasist 8.8.2003, 22:46
Очень просто. Во первых, пишишь простой сервер на сокетах и открываешь его на порт 80. Потом берешь URL который эта кнопка открывает (например, http://forum.vingrad.ru/index.php?act=ST&f=2&t=11379) и меняешь имя сервера на свой IP (в примере: http://<твой IP>/index.php?act=ST&f=2&t=11379). Тыкаешь Go и в своем сервере ловишь запрос.

Автор: p0s0l 9.8.2003, 17:12
1.
Цитата
Во первых, пишишь простой сервер на сокетах и открываешь его на порт 80.

Я вытащил TTcpServer, поставил LocalPort = 80.

2.
Цитата
берешь URL который эта кнопка открывает

В том-то и дело, что URL я не знаю. Вернее я знаю URL, но видимо кроме URL нужно знать что-то еще (например, какие-то параметры - но я их нигде не могу найти). Вся беда в том, что на той странице несколько кнопок ссылаются на один и тот же URL, но результат нажатия разный...
Ладно, взял тот самый URL, с подменой но свой IP.

3.
Цитата
меняешь имя сервера на свой IP

Имя сервера - это LocalHost ? Или как ?

4. Поставил Active=True

А дальше чо? Куда идут запросы ?
Есть OnAccept, но у него в параметрах только ClientSocket - что с ним делать ?
Может быть типа:
ClientSocket.Connect;
ClientSocket.ReceiveFrom(...); - какой тут ставить ToAddr:sockaddr_in confused.gif
confused.gif

Автор: Mikel 10.8.2003, 16:57
Поставь в браузере прокси сервер на хост localhost и порт, например, 80. Создаешь серверсокет на 80 порт и открываешь его. Всё, все запросы идут к тебе.

Автор: p0s0l 10.8.2003, 18:25
Mikel - почти работает, только когда я ставлю в proxy значение LocalHost, у меня практически никуда IE не лезет, пишет что страница не может быть открыта. А запросы-то ловятся...

Автор: p0s0l 10.8.2003, 18:39
Всё! Отключил прокси, добрался до нужной страницы, потом уже его включил - и все получилось!
Щас как-то надо разобраться с той лабудой, что посылает мой IE...

Спасибо всем, кто ответил!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)