Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Запрос получения страницы   Найти похожие ветки 

 
snake1977   (2004-07-29 09:42) [0]

Здравствуйте!! подскажите, может я че не так делаю :)
взял 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");

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


 
Digitman ©   (2004-07-29 09:52) [1]

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

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

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

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


 
Digitman ©   (2004-07-29 09:53) [2]

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


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

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

???


 
Digitman ©   (2004-07-29 10:04) [4]

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

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


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

все равно не хочет :(
после отправки сообщения, событие 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:36) [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:49) [7]

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


 
Reindeer Moss Eater ©   (2004-07-29 10:51) [8]

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


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

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


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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
3-1094469957
Yrtimd
2004-09-06 15:25
2004.10.03
синхронизация таблиц


11-1081274763
Михаил
2004-04-06 22:06
2004.10.03
Редактор ресурсов


1-1095234490
X-Disa
2004-09-15 11:48
2004.10.03
Сохранение компонента


1-1095498796
Relaxxx
2004-09-18 13:13
2004.10.03
Какой генератор ртчетов использовать?????


14-1095161406
frankvi
2004-09-14 15:30
2004.10.03
PDF Viewer