如何从 Indy IdHTTP get 读取响应
How to read response from Indy IdHTTP get
我已经编写了将 get 与 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);
这个 url http://localhost/salesapp/is_run.php?ser=v
return JSON 回复,但我不知道如何从 Delphi.
读取它
当 Get()
退出时,流的 Position
位于流的末尾。您需要在调用 LoadFromStream()
之前将 Position
重置回 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()
return 将 JSON 作为 String
代替:
memo1.Text := IdHTTP1.Get(get_url+'v');
我已经编写了将 get 与 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);
这个 url http://localhost/salesapp/is_run.php?ser=v
return JSON 回复,但我不知道如何从 Delphi.
当 Get()
退出时,流的 Position
位于流的末尾。您需要在调用 LoadFromStream()
之前将 Position
重置回 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()
return 将 JSON 作为 String
代替:
memo1.Text := IdHTTP1.Get(get_url+'v');