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

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

HTTP ЗАПрос [D7, WinXP]


NLO ©   (2004-06-21 16:31:00) 

Челы помогите уже мучаюсь незнай сколько
Я хочу отослать HTTP запрос а потом от сервера принять ответ в MEMO но что-то не чего не получаеться запрос то я отсылаю а вот ответ не получаю или получаю но иногда ответ об ошибки в чём проблема не пойму вот как я это делаю:
>>
procedure TForm1.Button4Click(Sender: TObject);
begin
sete:='';
sete:=sete+'GET http://registrar.rol.ru/HTTP/1.0'+#10+#13;
sete:=sete+'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.10  [ru]'+#10+#13;
sete:=sete+'Host: registrar.rol.ru'+#10+#13;
sete:=sete+'Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#10+#13;
sete:=sete+'Accept-Language: en;q=1.0,ru;q=0.9'+#10+#13;
sete:=sete+'Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1'+#10+#13;
sete:=sete+'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#10+#13;
sete:=sete+'Proxy-Connection: close'+#10+#13;
ClientSocket1.Host:='registrar.rol.ru';
ClientSocket1.Port:=80;
ClientSocket1.Open;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
ClientSocket1.Socket.SendText(sete);
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;

Заранее спасибо!!!!


KirGus   (2004-07-15 01:21:00) [1]

здеся Фсё..делить поровну, хто придумает че-нить интересное по этому поводу...., ну я думаю знаете , что делать;)
----------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:='delphimaster.ru';
ClientSocket1.Port:=80;
ClientSocket1.Active:=true;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;Socket: TCustomWinSocket);
var
 sete:string;
begin
  sete:='';
  sete:=sete+'GET /cgi-bin/forum.pl?id=1089671512&n=4 HTTP/1.1'     +#13#10;
  sete:=sete+'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*' +#13#10;
  sete:=sete+'Accept-Language: ru'+#13#10;
  sete:=sete+'Accept-Encoding: gzip, deflate'+#13#10;
  sete:=sete+'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'+#13#10;
  sete:=sete+'Host: delphimaster.ru' +#13#10;
  sete:=sete+'Connection: Keep-Alive'+#13#10#13#10;

  ClientSocket1.Socket.SendText(sete);
  end;

procedure TForm1.ClientSocket1Read(Sender: TObject;Socket: TCustomWinSocket);
   
 begin
    Memo1.Lines.Add(Socket.ReceiveText);
 end;


RaPToR_1   (2004-07-14 08:39:00) [2]

прикольно
заполняет переменную в одной процедуре, а шлет в другой)


nikkie   (2004-07-14 01:26:00) [3]

>Шо не так-с?
да уж... веселый код :))
посмотри на строчки
 var
   sete:string;

и подумай.


Rouse_   (2004-07-14 00:52:00) [4]

Мдяя... мудрые эксперименты молодых гоблинов (С) Лукьяненко
Для чего WinInet придуман?
ЗЫ: Если уж по RFC сделать не можете, то зачем на сокеты прыгаете?


Лев Ландау   (2004-07-14 00:43:00) [5]

Я долго анализировал поставленную задачу, но все расно не выходет
получить ответные логи с сервера в мемо...! Шо не так-с?
------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
 var
   sete:string;
begin
   sete:='';
   sete:=sete+'GET / HTTP/1.1'+#13#10;
   sete:=sete+'Accept: */*'+#13#10;
   sete:=sete+'Accept-Language: ru'+#13#10;
   sete:=sete+'Accept-Encoding: gzip, deflate'+#13#10;
   sete:=sete+'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'+#13#10;
   sete:=sete+'Host: www.google.ru'+#13#10;
   sete:=sete+'Connection: Keep-Alive'+#13#10;
   sete:=sete+'Cookie: PREF=ID=0d77109352a3d0c6:LD=ru:TM=1088201126:LM=1088201126:S=gQF7J5DjCNZjK95J'+#13#10#13#10;

 ClientSocket1.Host:='www.google.ru';
 ClientSocket1.Port:=80;
 ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
  var
    sete:string;
  begin
    ClientSocket1.Socket.SendText(sete);
  end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
  begin
  Memo1.Lines.Add(Socket.ReceiveText);
  end;


Undert   (2004-06-22 21:13:00) [6]

Unit idHTTP;

HTTP: TidHTTP;
S: String;

HTTP:=tIDHTTP.Create;
Try S:=HTTP.Get(' http://registrar.rol.ru/');
Except ShowMessage('Damned!');End;
If S<>'' Memo.Lines.Text:=S;


Piter   (2004-06-22 21:08:00) [7]

NLO   (21.06.04 16:31)

Нужно писать на #10#13, а #13#10

И при этом в самом конце должен идти двойной перевод строки. То есть

sete:=sete+'Proxy-Connection: close'+#13#10#13#10;


Palladin   (2004-06-22 19:42:00) [8]

http://www.codenet.ru/webmast/http/rfc2068/


SergP   (2004-06-22 03:26:00) [9]


> 'GET http://registrar.rol.ru/HTTP/1.0'


Кстати вот это вроде тоже неправильно...


SergP   (2004-06-22 00:20:00) [10]

Только вроде бы не #10#13, а #13#10


NLO   (2004-06-21 19:14:00) [11]

//Reindeer Moss Eater
что то всёравно не получаеться


Reindeer Moss Eater   (2004-06-21 16:35:00) [12]

sete:=sete+'Proxy-Connection: close'+#10+#13 #13#10;


Наверх

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