繁体   English   中英

如何从Indy IdHTTP获取响应

[英]How to read response from Indy IdHTTP 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返回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()返回JSON作为String

memo1.Text := IdHTTP1.Get(get_url+'v');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM