Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao chamar Put no delphi


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 1534 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde pessoal. Se possível queria uma ajuda de vocês.

Estou tentando fazer a integração com API do iFood e estou com problemas no endpoint de Abertura/Fechamento do resturante ao dar Put em ' https://pos-api.ifood.com.br/v1.0/merchants/id/statuses'

Sempre que executa o delphi retorna a seguinte mensagem:

'[dcc32 Error] uDMiFood.pas(261): E2250 There is no overloaded version of 'Put' that can be called with these arguments'

Ja verifiquei dentro do TidHTTP e há dois métodos de put, estou informando os parametros que correpondem ao primeiro método

 

1)

procedure TIdCustomHTTP.Put(AURL: string; ASource, AResponseContent: TStream);
begin
  DoRequest(Id_HTTPMethodPut, AURL, ASource, AResponseContent, []);
end;

----------------------------------------------------------------------------------------------

2)

function TIdCustomHTTP.Put(AURL: string; ASource: TStream
  {$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}
  ): string;
var
  LResponse: TMemoryStream;
begin
  LResponse := TMemoryStream.Create;
  try
    Put(AURL, ASource, LResponse);
    LResponse.Position := 0;
    Result := ReadStringAsCharset(LResponse, Response.Charset{$IFDEF STRING_IS_ANSI}, ADestEncoding{$ENDIF});
                                                                                  
  finally
    FreeAndNil(LResponse);
  end;
end;

-------------------------------------------------------------------------------------------

Fiz seguindo o exemplo do seguinte site: http://www.bemmelhor.com.br/info/index.php?title=HTTP_GET_no_Delphi_2010

 

Abaixo o trecho do código que estou trabalhando, desde já agradeço.

procedure TdmIFood.StatusRestaurante(pStatus, pMotivo, pMerchant: String);
var
  slParam: TStringList;
  HTTPClient: TidHTTP;
  ssJson: TStringStream;
begin
  HTTPClient := TidHTTP.Create;
  slParam := TStringList.Create;
  ssJson := TStringStream.Create('', TEncoding.UTF8);
  try
    with slParam do
    begin
      Add('status=' + pStatus);
      Add('reason=' + pMotivo);
    end;
    with HttpClient do
    begin
      Request.Clear;
      Request.ContentType := 'application/json';
      Request.CharSet := 'UTF-8';
      Request.BasicAuthentication := False;
      Request.CustomHeaders.Clear;
      Request.CustomHeaders.AddValue('cache-control', 'no-cache');
      Request.CustomHeaders.AddValue('Content-Type', 'application/json');
      Request.CustomHeaders.AddValue('Authorization', 'bearer' + FToken);
      Request.Accept := 'application/json';
      Put('https://pos-api.ifood.com.br/v1.0/merchants/' + pMerchant + '/statuses', slParam, ssJson);
    end;
    ShowMessage(ssJson.DataString);
  finally
    FreeAndNil(HTTPClient);
    FreeAndNil(slParam);
    FreeAndNil(ssJson);
  end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
24 minutos atrás, cellfantasma disse:

Olá não tentei ainda, pois quando comecei a pesquisar, encontrei algumas soluções e exemplos usando TidHTTP para fazer as requisições.

Usa o RESTClient e o RestDebugger . creio que será mais rápido de tu implementar

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

  • Este tópico foi criado há 1534 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.