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

Вниз

Как подкл. ч-з TCPClient, отправить строку "GET" и пол.ответ ?   Найти похожие ветки 

 
jiny   (2007-02-22 11:58) [40]

>>Тебе уже говорили, что все, что ты хочешь об этом знать и не
>>стесняешься спрашивать здесь описано в RFC. Причем есть переводы этих >>>документов на русский язык.

Ты знаешь, все что там написано, я прочитал, но проблемы  моей это никак не решило

А если не задавать в форуме вопросов, пусть даже, по вашему мнению, тупых, то давайте попросим уважаемых модераторов вообще закрыть его, зачем он нужен, все ж будут по ссылкам в любом случае ходить.
А раз форум есть, то будут и вопросы - любые, тупые, умные, не имеет значения, если тебе в ломы отвечать можешь вообще не отвечать, никто же не принуждает, только просит.


 
Reindeer Moss Eater ©   (2007-02-22 12:33) [41]

Ты знаешь, все что там написано, я прочитал, но проблемы  моей это никак не решило

Что конкретно за проблема?


 
jiny   (2007-02-22 12:41) [42]

Посыл данных пошел на сервер
Прием данным с онного начался
но по какой то причине при ReceiveLn пошли пустые строки с сервака, часть страницы браузер клиента даже подгрузил, но в цикле я ищу тэг </HTML>
и не нахожу по этой простой причине ( сервак внезапно прекращает отсыл данных)
программа "зависает" в цикле While, перебор до дисконнекта с сервером дает тот же результат.
понимаю, что где то загвоздка, только вот где....
вот код :

   s := TcpClient1.Receiveln;
   While pos("</HTML>",ansiuppercase(s))=0 do
   begin
      ClientSocket.Sendln(s);
      Application.ProcessMessages;
      s := TcpClient1.Receiveln;
   end;
      ClientSocket.Sendln(#13#10);


 
Reindeer Moss Eater ©   (2007-02-22 12:46) [43]

но в цикле я ищу тэг </HTML>

А собственно кто тебе сказал, что надо искать какой-то та тэг?
Да еще и </HTML> ???


 
Reindeer Moss Eater ©   (2007-02-22 12:46) [44]

На, найди свой тэг вот здесь

http://www.cbr.ru/scripts/XML_daily.asp


 
jiny   (2007-02-22 12:50) [45]

Не учел того, что страница зачастую разделена на фреймы
Пробовал до дисконекта сервера, он не отключается, до упора висит
пробовал на условие #13#10#13#10 та же беда, обрывается прием данных с сервер


 
Reindeer Moss Eater ©   (2007-02-22 12:51) [46]

Пробовал до дисконекта сервера, он не отключается, до упора висит
А я тебе что говорил?
Когда надо до дисконнекта читать?

Короче в сад.


 
SlymRO   (2007-02-22 12:58) [47]

Анализируй:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Controls, Forms,
 StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
 IdTCPClient, IdAntiFreezeBase, IdAntiFreeze, ExtCtrls;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Panel1: TPanel;
   Proxy: TEdit;
   Button2: TButton;
   Label1: TLabel;
   Memo2: TMemo;
   procedure Button2Click(Sender: TObject);
 private
 public
   procedure OnWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
 end;

var
 Form1: TForm1;

implementation
uses IdGlobal;
{$R *.dfm}

function GetResponseCode(const Response:string): Integer;
var S: string;
begin
 S := Response;
 Fetch(S);
 S := Trim(S);
 Result := StrToIntDef(Fetch(S, " ", False), -1);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 IdTCPClient1:TIdTCPClient;
 str:string;
 procedure log(const Msg:string);
 begin
   Memo1.Lines.Add(DateTimeToStr(Now));
   Memo1.Lines.Add(Msg);
 end;
 procedure Wln(const Msg:string);
 begin
   Log(Msg);IdTCPClient1.IOHandler.WriteLn(Msg);
 end;
 procedure W(const Msg:string);
 begin
   Log(Msg+#13#10);IdTCPClient1.IOHandler.Write(Msg);
 end;
 function Rln:string;
 var s:string;
 begin
   result:="";
   repeat
     s:=IdTCPClient1.IOHandler.ReadLn;
     result:=result+#13#10+s;
   until s="";
   Log(result);
 end;
begin
 try
   Memo1.Clear;
   Application.ProcessMessages;
   IdTCPClient1:=TIdTCPClient.Create;
   try
     IdTCPClient1.OnWork:=OnWork;
     IdTCPClient1.ConnectTimeout:=30000;
     IdTCPClient1.ReadTimeout:=30000;
     str:=Trim(Proxy.Text);
     IdTCPClient1.Host:=Fetch(str,":");
     IdTCPClient1.Port:=StrToInt(str);
     Log("Connecting to "+IdTCPClient1.Host+":"+IntToStr(IdTCPClient1.Port)+" proxy");
     IdTCPClient1.Connect;
     Log("Connected"#13#10);
     Wln("CONNECT delphimaster.ru:80 HTTP/1.1"#13#10);
     if GetResponseCode(Rln)<>200 then begin Log("Error"); exit; end;
     Wln("POST http://delphimaster.ru/cgi-bin/forum.pl HTTP/1.0"#13#10+
         "Host: delphimaster.ru"#13#10+
         "Accept: */*"#13#10+
         "Accept-Language: ru"#13#10+
         "Connection: Close"#13#10+
         "Content-Type: application/x-www-form-urlencoded"#13#10+
         "Content-Length: "+IntToStr(length(Memo2.lines.Text))+#13#10);
     W(Memo2.lines.text);
     if GetResponseCode(Rln)<>200 then begin Log("Error"); exit; end;
     Log(IdTCPClient1.IOHandler.AllData);
   finally
     IdTCPClient1.Free;
   end;
 except
   on e:exception do
   begin
     Log(E.Message);
   end;
 end;
end;

procedure TForm1.OnWork(ASender: TObject; AWorkMode: TWorkMode;
 AWorkCount: Integer);
begin
 Caption:=IntToStr(AWorkCount);
end;

end.



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

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

Наверх




Память: 0.56 MB
Время: 0.027 c
2-1191147505
Nikfel
2007-09-30 14:18
2007.10.21
Как получить список дисков с обозначениями.


15-1190306195
Александр Иванов
2007-09-20 20:36
2007.10.21
Подскажите фотоаппарат (тема с программированием связана :)


6-1171358206
SergGG
2007-02-13 12:16
2007.10.21
MailSlot поймать реального клиента


15-1190345728
Riply
2007-09-21 07:35
2007.10.21
Коварный TStrings :)


15-1190275092
Layner
2007-09-20 11:58
2007.10.21
Сколько Vista проработает без активации?