我在我的服务器上有一个 PHP 脚本,它非常简单,因为它只有一个任务:将两个数据存储到 SQL 数据库中。
http://mydomain.it/test.php?id=285&numero=504;
如果您在浏览器中打开此URL,将添加一行到类似于以下内容的SQL表中:
![enter image description here](https://istack.dev59.com/7WUur.webp)
var url: string;
H: TIdHttp;
SS: TStringStream;
begin
url := 'http://mydomain.it/test.php?id='+IntToStr(a)+'&numero='+IntToStr(b);
H := TIdHttp.Create(nil);
try
SS := TStringStream.Create;
try
try
H.Post(url, SS);
except
on E:Exception do
ShowMessage(e.Message);
end;
finally
SS.Free;
end;
finally
H.Free;
end;
上面的代码非常有效,因为它只需要1秒钟就能运行,并且我正在捕获异常(仅用于调试目的)。我有两个主要问题:
这是我第一次使用indy,从我所了解的来看,这是做我需要的事情的好方法。我不确定我是否将
try-except
放在了正确的位置; 是吗?如果互联网连接速度很慢怎么办?我应该使用像下面的代码一样的东西吗?
代码
var process: array of ITask;
begin
SetLength(process, 1);
process[0] := TTask.Create(
procedure
var url: string;
H: TIdHttp;
SS: TStringStream;
begin
url := 'http://mydomain.it/test.php?id='+IntToStr(a)+'&numero='+IntToStr(b);
H := TIdHttp.Create(nil);
try
SS := TStringStream.Create;
try
try
H.Post(url, SS);
except
on E:Exception do
ShowMessage(e.Message);
end;
finally
SS.Free;
end;
finally H.Free;
end;
end
);
process[0].Start;
TTask.WaitForAll(process);
Label1.Text := 'done!!';
end;