Текущий архив: 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