Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос получения страницы


snake1977 ©   (2004-07-29 09:42:00) 

Здравствуйте!! подскажите, может я че не так делаю :)
взял TClientSocket, присвоил
ClientSocket1.Host:='www.rambler.ru';
ClientSocket1.Port:=80;
ClientSocket1.Active:=True;

делаю SendText('GET http://www.rambler.ru/HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
Accept-Language: ru
Cookie: ruid=AQAAALeSB0GcFQEAAbwcAGT3v
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: www.rambler.ru
Proxy-Connection: Keep-Alive');

а в ответ тишина :((
Сервер то должен послать мне в ответ заголовок и страницу. или я что то путаю??


snake1977   (2004-07-29 10:58:00) [1]

:) да хоть бы один получить :)

заработало !!!! тока когда посавил два CRLF :)
спабо Reindeer Moss Eater


Reindeer Moss Eater   (2004-07-29 10:55:00) [2]

я сделал условие выхода s<>''
Зашибись.
Сразу после приема первого же байта прекращаем чтение?


snake1977   (2004-07-29 10:53:00) [3]

отвисла :)
но s всегда пуста :(
я сделал условие выхода s<>''


Reindeer Moss Eater   (2004-07-29 10:51:00) [4]

ClientSocket1.Socket.SendText('GET http://www.rambler.ru/HTTP/1.0'+#13#10#13#10);


snake1977   (2004-07-29 10:49:00) [5]

>>Digitman
зависает весь процесс на первомже вызове
s := s + Socket.ReceiveText
:((


Digitman   (2004-07-29 10:36:00) [6]

ClientSocket1.Host:='www.rambler.ru';
ClientSocket1.Port:=80;
ClientSocket1.ClientType := ctBlocking;
ClientSocket1.Active:=True;
ClientSocket1.Socket.SendText('GET http://www.rambler.ru/HTTP/1.0'+#13+#10);
Responce := '';
while not условие_приема_от_сервера_целостного_результата_запроса do
s := s + Socket.ReceiveText;
Memo1.Lines.Text := Responce;


snake1977   (2004-07-29 10:26:00) [7]

все равно не хочет :(
после отправки сообщения, событие onRead не вызывается :(
т.е. сервер в ответ ничего не отдает :(
>>Digitman
можеш написать пример ?? вот то что у меня
ClientSocket1.Host:='www.rambler.ru';
ClientSocket1.Port:=80;
ClientSocket1.Active:=True;
ClientSocket1.Socket.SendText('GET http://www.rambler.ru/HTTP/1.0'+#13+#10);

соответсвенно на onRead
Memo1.Lines.Append(Socket.ReceiveText);


Digitman   (2004-07-29 10:04:00) [8]

как минимум - да

кр.того, если режим кл.гнезда неблокирующий, следует анализировать рез-т вызова SendText() и обрабатывать событие OnWrite()


snake1977   (2004-07-29 09:55:00) [9]

т.е. я так понял, для сервера не надо указывать все что я там написал а достаточно послать
SendText('GET http://www.rambler.ru/HTTP/1.0'+#13+#10);

???


Digitman   (2004-07-29 09:53:00) [10]

http://book.itep.ru/4/45/http4561.htm#4.1


Digitman   (2004-07-29 09:52:00) [11]

прежде чем сервер тебе что-то ответит, он должен получить запрос клиента "целиком"

4.1. Строка http-запроса

Строка запроса начинается с лексемы метода, за которой следует Request-URI, версия протокола, завершается строка последовательностью CRLF. Элементы разделяются символами SP. Символы CR или LF запрещены кроме завершающей последовательности CRLF.

Request
Line = Method SP Request-URI SP HTTP-Version CRLF


Наверх

Титульная страница Поиск, карта сайта Написать письмо