conectar restdebugger com token delphi e api skyhub

27/09/2018

48

boa tarde amigos, meu problema e o seguinte :
estou tentando implementar uma comunicação do meu sistema com a pi da skyhub para integração dos sistemas, mas não estou conseguindo configurar corretamente a conexão no delphi ou pelo restdebugger (da o mesmo erro nos 2), fiz as configurações de acordo com o manual da skyhub e quando uso uma requisição get / questions vai normalmente no rest debugger (consequentemente no delphi tb) + caso eu tente outros comandos tipo : /products ou /categories , me retorna o json :
{
"error":"Usuário bloqueado ou inexistente"
}

fiz utilizando a recomendação do amigo com o programa ReadyAPI 2.5.0 conforme sugerido e conecta perfeitamente e executado todos os comandos sem problema, sendo assim o problema esta em conseguir configurar no delphi, segue rotina q tentei no delphi via linha de comando e da o mesmo erro que no rest debugger, no manual do provedor do serviço esta para configurar no header conforme fiz e funcionou no readapi e no site da skyhub tb funciona normalmente no api explorer + no delphi nada me retorna o erro acima.

restClient1.baseurl :='https://api.skyhub.com.br';
restClient1.Accept := 'application/json, text/plain; q=0.9, text/html;q=0.8,';
restResponse1.ContentType := 'text/xml';
restRequest1.AcceptCharset := 'UTF-8, *;q=0.8';
restRequest1.Params[0].Kind := pkHTTPHEADER;
restRequest1.Params[0].name := 'Accept';
restRequest1.Params[0].Value := 'application/json;charset=UTF-8';
restRequest1.Params[1].Kind := pkHTTPHEADER;
restRequest1.Params[1].name := 'Content-Type';
restRequest1.Params[1].Value := 'application/json';
restRequest1.Params[2].Kind := pkHTTPHEADER;
restRequest1.Params[2].name := 'X-User-Email';
restRequest1.Params[2].Value := 'multisoftwarepdosul@gmail.com';
restRequest1.Params[3].Kind := pkHTTPHEADER;
restRequest1.Params[3].name := 'x-accountmanager-key';
restRequest1.Params[3].Value := 'minhakey';
restRequest1.Params[4].Kind := pkHTTPHEADER;
restRequest1.Params[4].name := 'x-Api-Key';
restRequest1.Params[4].Value := 'minhasenhaapi';
restRequest1.resource:='/categories';
restRequest1.execute;

caso eu troque o /categories para /questions por exemplo retorna 200, + qualquer outro comando retorna usuario bloqueado ou inexistente, sendo q pelo ready api e site da skyhub vai tudo normalmente
desde ja agradeço a quem possa me ajudar
desde ja agradeço
Responder

Post mais votado

30/04/2020

Olá.
Ao informar o usuário(X-User-Email) que para esse caso tem uma @ por ser o email cadastrado junto a SkyHub, na hora de restRequest1.execute; o Delphi está trocando o @ por % retornando "error":"Usuário bloqueado ou inexistente" oque é certo pois não existe mesmo.

Para resolver esse erro e conseguir executar passe o X-User-Email dessa forma:

with RESTRequest1.Params.AddItem do
begin
name := 'X-User-Email';
Value := vXUserEmail;
Options := [TRESTRequestParameterOption.poDoNotEncode];
ContentType := ctAPPLICATION_JSON;
Kind := TRESTRequestParameterKind.pkHTTPHEADER;
end;

Passando o Options com a opção poDoNotEncode resolve esse erro.

Responder

Mais Posts

ola marcio, comecei a desenvolver agora também, vc conseguiu descobrir ? poderia me dar uma ajuda ??
Responder

14/12/2018

Marcio Batista

ola marcio, comecei a desenvolver agora também, vc conseguiu descobrir ? poderia me dar uma ajuda ??
<br />
<br />
boa noite amigo, eu parei nessa parte que esta ae, não fiz +, na vdd eu perdi o cliente + pretendo brevemente retornar.
Responder

08/04/2019

Mateus Viel

ola marcio, comecei a desenvolver agora também, vc conseguiu descobrir ? poderia me dar uma ajuda ??


Bom dia, conseguiram progredir algo?
Responder

08/04/2019

Marcio Batista

bo tarde mateus, infelizmente eu nao consegui e perdi o cliente, parei nesse ponto e não passei disso.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar