![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос получения страницы
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