Форум: "Сети";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизЗапрос получения страницы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c