Ir para conteúdo
  • Cadastre-se

dev botao

delphi7 + delphi-rest-client-api


  • Este tópico foi criado há 667 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa noite @Juliomar Marchetti eu vi um post seu que você faz uso do delphi-rest-client-api  para consumir API. 

 

 

estou precisando fazer um consumo conforme a imagem abaixo o Json já consegui criar usando o json4delphi, porém não sei se não estou sabendo como inserir isso no componente ou se estou inserido corretamente.

image.png.a5144b250c413eac8cd1c1f44f418265.png

 

 

    retorno := RestClient.Resource('http://api.qualp.com.br/rotas/v4' + ',params: {json: '+Json.Stringify+'}')
                              .ContentType(RestUtils.MediaType_Json)
                              .Accept(RestUtils.MediaType_Json)
                              .Header('Access-Token', 'kCSSafswrwerwerwe2341h4No')
                              .get;

 

 

se puder me dar uma luz para onde deve ir agradeço.

 

pois pelo erro acho que estou montando o comando errado. 

 

image.thumb.png.199df4db2c3497f821d0fd01b61ba040.png

image.png

Link para o comentário
Compartilhar em outros sites

 

Sim estou usando Delphi 7

 

estou tentando consumir uma API da qualp.com.br que é para cálculo rodoviários, tenho q passar o json com as requisições que eu preciso e ele irá retornar um json com as informações.

nos parâmetros tenho q passar o Json dos parâmetros da consulta 

image.png.a5144b250c413eac8cd1c1f44f418265.png

image.png.21e2f7e042ea7332bf54e74d3971193e.png

 

Desculpa mas queryparams seria um parâmetro do Get, porém tentei passar o Json por lá mas dá erro, não sei se é eu q não estou sabendo interpretar o Get. Pois pelo componente delphi-rest-client-api tem esses três tipo de get

    function Get: string;overload;
    procedure Get(AHandler: TRestResponseHandler);overload;
    function Get(EntityClass: TClass): TObject;overload;

tentei usar o 3º Get conforme no exemplo, porem no exemplo ele usa uma Type mas preciso passar um Json, porém dá seguinte erro >> [Error] API.pas(285): There is no overloaded version of 'Get' that can be called with these arguments

    Jsonretorno := Tjson(RestClient.Resource('http://api.qualp.com.br/rotas/v4')
                              .ContentType(RestUtils.MediaType_Json)
                              .Accept(RestUtils.MediaType_Json)
                              //.GetContentTypes();
                              .Header('Access-Token', 'kCSSeyXsjXutqKzs3y5f2SevzGe1h4No')
                              .get(TJson, Json));

 

 

exemplo do Get 

type
  TPerson = class(TObject)
  {$IFDEF DELPHI_7}
  private
    FId: Integer;
    FEmail: String;
    FName: String;
    FCreateDate: TDateTime;
  published
    property id: Integer read FId write FId;
    property name: String read FName write FName;
    property email: String read FEmail write FEmail;
    property createDate: TDateTime read FCreateDate write FCreateDate;
  {$ELSE}
  public
    id: Integer;
    name: String;
    email: String;
    createDate: TDateTime;
  {$ENDIF}

    class function NewFrom(Id: Integer; Name, EMail: String): TPerson;
  end;
procedure TFrm_PersonList.btnUpdateClick(Sender: TObject);
var
  vPerson: TPerson;
begin
  if ListView1.ItemIndex >= 0 then
  begin
    vPerson := TPerson(ListView1.Items[ListView1.ItemIndex].Data);

    if TFrm_Person.Modify(vPerson) then
    begin
      DM.RestClient.Resource(CONTEXT_PATH + 'person')
                   .Accept(RestUtils.MediaType_Json)
                   .ContentType(RestUtils.MediaType_Json)
                   .Put(vPerson)
                   .Free;

      RefreshList;
    end;
  end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Get não tem body para enviar JSON pois não é o objetivo dificilmente vai conseguir enviando

testou com o postman pois no site ele deixa e olhar como ele manda

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Boa noite,

     Estou com o mesmo problema, preciso fazer um get passando um parametro em json como filtro. No postman funciona, mas no delphi não consigo encontrar uma solução. Alguem tem uma dica?

image.thumb.png.6c7af781884399a882c73569bc8af7a9.png

 

Codigo em C# e em outras linguens tem, mas em delphi não. Alguem consegui me ajudar?

 

image.thumb.png.9e362f8b2a1ece6706adc2be1a781699.png

 

Editado por jrsoares
Link para o comentário
Compartilhar em outros sites

10 horas atrás, jrsoares disse:

Boa noite,

     Estou com o mesmo problema, preciso fazer um get passando um parametro em json como filtro. No postman funciona, mas no delphi não consigo encontrar uma solução. Alguem tem uma dica?

image.thumb.png.6c7af781884399a882c73569bc8af7a9.png

 

Codigo em C# e em outras linguens tem, mas em delphi não. Alguem consegui me ajudar?

 

image.thumb.png.9e362f8b2a1ece6706adc2be1a781699.png

 

use a classe ACBrHTTP que da certo.

Link para o comentário
Compartilhar em outros sites

18 horas atrás, jrsoares disse:

Boa noite,

     Estou com o mesmo problema, preciso fazer um get passando um parametro em json como filtro. No postman funciona, mas no delphi não consigo encontrar uma solução. Alguem tem uma dica?

image.thumb.png.6c7af781884399a882c73569bc8af7a9.png

 

Codigo em C# e em outras linguens tem, mas em delphi não. Alguem consegui me ajudar?

 

image.thumb.png.9e362f8b2a1ece6706adc2be1a781699.png

 

Estou conseguindo revolver parcialmente a minha conexão com o Lazarus + RESTRequest4D (https://github.com/viniciussanchez/RESTRequest4Delphi). Porém ainda estou procurando uma solução para usar no Delphi7 aonde aplicação foi feita. 

 

   mas pelo visto vc está usando o Delphi 10 dai RESTRequest4D acho que vai funcionar corretamente. 

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 667 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...