Consumir API - Delphi XE

Delphi

04/09/2019

Boa Tarde Pessoal!

Se puderem me orientar, preciso consumir uma API (segue documentação... https://api.tudoentregue.com.br/Documentacao/index.html)

Quanto à geração dos arquivo no formato Json, eu já consegui entender.

Porém, já tentei de várias formas e não consigo fechar comunicação com web service para Post do arquivo.

Vi na documentação que tem um "AppKey" e um "RequesterKey". As duas chaves eu possuo mas não tenho ideia de onde as defino.

securityDefinitions": {
    "AppKey": {
      "type": "apiKey",
      "in": "header",
      "name": "AppKey",
      "description": "Identificador do software Homologado junto à ActiveCorp para integrar dados ao TudoEntregue."
    },
    "RequesterKey": {
      "type": "apiKey",
      "in": "header",
      "name": "RequesterKey",
      "description": "Identificador único do Motorista/Cliente junto ao TudoEntregue."



Estou utilizando IDHTTP, mas seria interessante que o envio fosse através de HTTPS.

Vejam como estou fazendo:
var code : Integer;
    sResponse : String;
    Json : String;
    JsontoSend : TStringStream;
begin
  Json := ''{"PhoneCountry": "+55",  "PhoneNumber": "19999999999",  "Name": "Daniel",  "IMEI": "",  "DeviceKey": "", "DeviceId": "",'';
  Json := Json +''"DeviceType": "MarcaModelo",  "OSName": "Android",  "OSVersion": "7.0",  "Email": "d2m.pavan@gmail.com",  "ZipCode": "13400000",  "City": "Piracicaba",  "State": "Sao Paulo",  "Enable": false}'';

  JsonToSend := TStringStream.Create(utf8Encode(Json));
  try
   IdHTTP1.Request.Clear;
   IdHTTP1.Request.CharSet := ''UTF-8'';
   IdHTTP1.Request.Method := ''POST'';
   IdHTTP1.Request.ContentType := ''application/json'';

   IdHTTP1.Response.ContentType := ''applicattion/json'';
   IdHTTP1.Response.CharSet := ''UTF-8'';
   try
     sResponse := IdHTTP1.Post(''http://api.tudoentregue.com.br/v1/drivers'',JsontoSend);
   except
     on E:EIdHTTPProtocolException do
     begin
       Memo1.Lines.Clear;
       Memo1.Lines.Add(''Error on Request: '' + #13+#10 + e.Message);
       exit;
     end;
   end;
   Memo1.Lines.Clear;
   Memo1.Lines.Add(sResponse);

   finally
      JsontoSend.Free();
  end;
end;

Alguém poderia me dar um exemplo de como enviar os arquivos se possível em HTTPS?

Desde já agradeço!



Daniel
Daniel Pavan

Daniel Pavan

Curtidas 0
POSTAR