Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: GET request mit JSON Antwort

  Alt 13. Jul 2018, 10:22
Selbstverständlich geht auch die Nutzung des Delphi eigenen REST-Frameworks:

Delphi-Quellcode:
uses
  REST.Client,
  IPPeerClient,
  System.Json;

procedure TForm3.Button1Click(Sender: TObject);
var
  RESTClient: TRESTClient;
  RESTRequest: TRESTRequest;
  RESTResponse: TRESTResponse;
  MyBytes: TBytes;
  MyJsonValue: TJSONValue;
begin
  RESTClient := TRESTClient.Create(nil);
  RESTRequest := TRESTRequest.Create(nil);
  RESTResponse := TRESTResponse.Create(nil);
  try
    RESTClient.BaseURL := 'http://www.codigopostal.gov.co';
    RESTClient.RaiseExceptionOn500 := False;

    RESTRequest.Client := RESTClient;
    RESTRequest.AddParameter('municipio', 'Santa Marta');
    RESTRequest.AddParameter('departamento', 'Magdalena');
    RESTRequest.AddParameter('direccion', 'Cra. 16 1c-20');
    RESTRequest.Resource := 'glow/param';
    RESTRequest.Response := RESTResponse;
    RESTRequest.SynchronizedEvents := False;

    RESTRequest.Execute;
    // Alternativ gibt es noch die Möglichkeit das Asyncron auszuführen und
    // wenn gewünscht automatisch in den Mainthread zurück synchronisieren zu lassen
    // RESTRequest.ExecuteAsync(MussteFüllen);

    if RESTResponse.StatusCode = 200 then
    begin
      // Hier gibt es mehrere Möglichkeiten den empfangenden Content abzugreifen:

      // Einmal als reiner String:
      Memo1.Lines.Add(RESTResponse.Content);

      // Oder als Bytes-Array:
      MyBytes := RESTResponse.RawBytes;

      // Für dich am sinnvollsten wäre das schon geparste JSON-Object/Value:
      MyJsonValue := RESTResponse.JSONValue;
    end;
  finally
    RESTClient.Free;
    RESTRequest.Free;
    RESTResponse.Free;
  end;
end;
  Mit Zitat antworten Zitat