我编写了使用get with indy IdHTTP组件的代码
var
get_url: string;
resp: TMemoryStream;
begin
get_url := 'http://localhost/salesapp/is_run.php?ser=';
resp := TMemoryStream.Create;
IdHTTP1.Get(get_url+'v', resp);
memo1.Lines.LoadFromStream(resp);
此网址http://localhost/salesapp/is_run.php?ser=v
返回JSON响应,但我不知道如何从Delphi中读取它。
答案 0 :(得分:12)
当Get()
退出时,流的Position
位于流的末尾。您需要在调用Position
之前将LoadFromStream()
重置为0,否则无法加载任何内容:
var
get_url: string;
resp: TMemoryStream;
begin
get_url := 'http://localhost/salesapp/is_run.php?ser=';
resp := TMemoryStream.Create;
try
IdHTTP1.Get(get_url+'v', resp);
resp.Position := 0; // <-- add this!!
memo1.Lines.LoadFromStream(resp);
finally
resp.Free;
end;
end;
另一种方法是删除TMemoryStream
,然后让Get()
将JSON作为String
返回:
memo1.Text := IdHTTP1.Get(get_url+'v');