Главная страница
    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.55 MB
Время: 0.048 c
4-1177393309
AlexEgorov
2007-04-24 09:41
2007.10.21
Межпотоковое взаимодействие: есть поток, который при


2-1191036769
Arkadiy
2007-09-29 07:32
2007.10.21
числа в строковом поле


15-1190181663
oldman
2007-09-19 10:01
2007.10.21
Все программисты знают, что компьютер - железный глупый ящик


2-1190714903
zzzz
2007-09-25 14:08
2007.10.21
Узнать редактировался ли столбец


2-1191224656
Lexx1
2007-10-01 11:44
2007.10.21
.ini не создается(





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский