Question

I'm trying to get json response via HTTP GET method to a string but all I got is that: enter image description here

I'm using a code like that:

memo1.Text:= idhttp1.Get('http://blabla.com/bla.php');

it returns json data. i need to get that json response to memo1.

How can I do that?

Was it helpful?

Solution

I found a solution. That code works perfect.

function GetURLAsString(aURL: string): string;
var
  lHTTP: TIdHTTP;
  lStream: TStringStream;
begin
  lHTTP := TIdHTTP.Create(nil);
  lStream := TStringStream.Create(Result);
  try
    lHTTP.Get(aURL, lStream);
    lStream.Position := 0;
    Result := lStream.ReadString(lStream.Size);
  finally
    FreeAndNil(lHTTP);
    FreeAndNil(lStream);
  end;
end;

OTHER TIPS

Try a newer version of Indy, Indy still supports non-Unicode Delphi.

The Indy TIdHTTP Get should automatially convert UTF-8 to Ansi (with limitations):

Internally, TIdHTTP.Get() decodes the server's UTF-8 data to Unicode, and then converts that to Ansi when returning it as an AnsiString in pre-2009 versions. That AnsiString uses the OS's default Ansi codepage, so yes, there is potential for data loss if the OS's current language does not support the Unicode characters being used by the server. http://forums2.atozed.com/viewtopic.php?f=7&t=3011

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top