Consumir API - Delphi XE

04/09/2019

0

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

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar