Jump to content

datilas

Membros
  • Content Count

    334
  • Joined

  • Last visited

  • Days Won

    1

datilas last won the day on June 29

datilas had the most liked content!

Community Reputation

75 Excellent

1 Follower

About datilas

  • Rank
    Membro Ativo
  • Birthday 03/05/1985

Profile Information

  • Sexo
    Masculino
  • Localização
    Cuiabá - MT

Recent Profile Visitors

1,306 profile views
  1. isso é um comportamento de keylogger dificilmente você vai conseguir que um antivírus te deixe em paz, se voce precisa de um bugtrace voce poderia usar : http://madshi.net/madExceptDescription.htm https://www.eurekalog.com/downloads_delphi.php por exemplo, mas existe outros.
  2. geralmente se voce tem username e password não vai precisar de client_id, client_secret o client_id e client_secret geralmente é usado para gerar um token e depois fazer todas as requisições com esse token quando você tem username e password não precisa do token fica até mais facil para trabalhar qual componente e versão do delphi você ta usando?
  3. dificilmente esses serviços de api tem algum exemplo em delphi, na proxima vez que vc precisar de algum suporte com alguma api (caso eles não tenham um demo em dephi) peça um manual para uso com curl, pois fica mais facil adaptar para os componentes do delphi. por exemplo: curl -X GET "https://https://api.betalabs.netapi/clients/acting-as/MyClientID/in/MyDomainID" -H "accept: application/json" -H "Authorization: myAuthorization" -H "X-CSRF-TOKEN: " GET é a operação pode ser GET, POST, PATCH, DELETE, PUT. -H é Header -data é o body etc.. ai fica mais fácil até para o suporte deles te ajudarem.
  4. Como vc pode ver aqui: curl -X GET "https://https://api.betalabs.netapi/clients/acting-as/MyClientID/in/MyDomainID" -H "accept: application/json" -H "Authorization: myAuthorization" -H "X-CSRF-TOKEN: " Você vai precisar de um Authorization que é um token gerado a partir do client_id e client_secret e um X-CSRF-TOKEN que é gerado a partir do token então entre em contato com eles e peça mais informação sobre o modo de autenticação deles. esse é o primeiro passo, depois disso é que você vai trabalhar de verdade.
  5. vc vai precisar de um client_id e um client_secret fazer uma chama a um endereço que vai retornar um token e com o token vc vai poder consumir os outros serviços nesse endereço que vc passou não existe nenhum metodo para retornar o token
  6. remova o IdHTTP1 do seu formulario e tente usar assim: Var code: Integer; sResponse: String; Json: String; JsontoSend, AResponseContent: TStringStream; iStatusCode: Integer; http: TIdHTTP; Begin Json := '{"Customer": { "DocumentType" : "CNPJ", "DocumentNumber" : "11229082000167" }, "Driver": { "PhoneCountry": "+55", "PhoneNumber": "19999690130", "Name": "Daniel Marcelo"} }'; JsonToSend := TStringStream.Create(Json); AResponseContent := TStringStream.Create(''); http := TIdHTTP.Create(Nil); Try http.Request.CharSet := 'utf-8'; http.Request.ContentType := 'application/json'; http.Request.CustomHeaders.AddValue('AppKey', '58fb05c3-4e8b-4929-b7df-95bd261035c9'); http.Request.CustomHeaders.AddValue('RequesterKey', '629eda6f-9df5-40e7-a94e-4c54cec83a15'); http.Response.ContentType := 'applicattion/json'; http.Response.CharSet := 'utf-8'; Try http.Post('https://api.tudoentregue.com.br/v1/customers/AddDriver', JsontoSend, AResponseContent); Except On E: Exception Do Begin Memo1.Lines.Clear; Memo1.Lines.Add('Error on Response Code: ' + InttoStr(http.ResponseCode)); Memo1.Lines.Add('Error on Response Text: ' + http.ResponseText); Memo1.Lines.Add('Error on Request: ' + sLineBreak + e.Message); exit; End; End; Memo1.Lines.Clear; Memo1.Lines.Add('Response Content: ' + AResponseContent.DataString); Memo1.Lines.Add('Response Code: ' + InttoStr(http.ResponseCode)); Memo1.Lines.Add('Response Text: ' + http.ResponseText); Finally JsontoSend.Free; AResponseContent.Free; http.Free; End; eu adicionei essas duas linhas: Memo1.Lines.Add('Error on Response Code: ' + InttoStr(http.ResponseCode)); Memo1.Lines.Add('Error on Response Text: ' + http.ResponseText); porque caso ResponseCode for 403,404,422 o indy vai levantar um except sendo que //IdHTTP1.ResponseCode = 403 Motorista não Relacionado. *response vazio* //IdHTTP1.ResponseCode = 404 Motorista não Localizado. *response vazio* então você não conseguiria tratar o erro de Motorista não Localizado por exemplo. caso tenha resolvido seu problema marque o post como melhor resposta clicando no sinal de no canto superior esquerdo do post
  7. se quiser usar https é só ligar um IdSSLIOHandlerSocketOpenSSL1 ao IdHTTP1 e colocar as dlls ssleay32.dll e libeay32.dll na mesma pasta da sua aplicação
  8. consegui: Json := '{"PhoneCountry": "+55", "PhoneNumber": "19999999999", "Name": "Daniel", "IMEI": "", "DeviceKey": "", "DeviceId": "",'; Json := Json + '"DeviceType": "MarcaModelo", "OSName": "Android", "OSVersion": "7.0", "Email": "[email protected]", "ZipCode": "13400000", "City": "Piracicaba", "State": "Sao Paulo", "Enable": false}'; AResponseContent := TStringStream.Create(''); JsonToSend := TStringStream.Create(utf8Encode(Json)); Try IdHTTP1.Request.Clear; IdHTTP1.Request.CharSet := 'utf-8'; IdHTTP1.Request.ContentType := 'application/json'; IdHTTP1.Request.CustomHeaders.AddValue('AppKey', '58fb05c3-4e8b-4929-b7df-95bd261035c9'); IdHTTP1.Request.CustomHeaders.AddValue('RequesterKey', '629eda6f-9df5-40e7-a94e-4c54cec83a15'); IdHTTP1.Response.ContentType := 'applicattion/json'; IdHTTP1.Response.CharSet := 'utf-8'; IdHTTP1.Post('http://api.tudoentregue.com.br/v1/drivers', JsontoSend, AResponseContent); //IdHTTP1.ResponseCode = 200 Atualização de Registro. //IdHTTP1.ResponseCode = 201 Inclusão de Registro. //IdHTTP1.ResponseCode = 422 Erro de Validação. showmessage(AResponseContent.DataString); showmessage(IdHTTP1.ResponseCode.ToString); showmessage(IdHTTP1.ResponseText); Finally JsontoSend.Free(); End; de acordo com a api quando faz um post em /drivers o Response vem vazio mesmo o que valida a informação do post é o ResponseCode //IdHTTP1.ResponseCode = 200 Atualização de Registro. //IdHTTP1.ResponseCode = 201 Inclusão de Registro. //IdHTTP1.ResponseCode = 422 Erro de Validação. mas quando faz um get em /drivers ele responde os dados do motorista mas de uma boa lida na api pois os codigos do ResponseCode são muito importantes por exemplo quando faz um get em drivers: //IdHTTP1.ResponseCode = 200 Processado com Sucesso. *e vem os dados do motorista no response* //IdHTTP1.ResponseCode = 403 Motorista não Relacionado. *response vazio* //IdHTTP1.ResponseCode = 404 Motorista não Localizado. *response vazio*
  9. eu testei com o rest debuguer do delphi e funcionou. menu tools-> Rest Debuguer agora to sem tempo pra testar com o indy
  10. pra mim aparece: HTTP/1.1 422 Unprocessable Entity seu try except não esta deixando voce ver o erro
  11. voce pode testar dentro da propria api acessa: https://api.tudoentregue.com.br/Documentacao/index.html clique no botão Authorize do lado direito digite suas keys clique no botão Authorize dentro da tela que abriu feche essa tela. logo abaixo clique na primeira opção clique no botão "try it out" logo em baixo clique no botão execute vc vai ter uma resposta parecida com essa: curl -X POST "http://api.tudoentregue.com.br/v1/drivers" -H "accept: application/json" -H "AppKey: gfg" -H "RequesterKey: gdf" -H "content-type: application/json" -d "{ \"PhoneCountry\": \"+55\", \"PhoneNumber\": \"99999999999\", \"Name\": \"Motorista Exemplo\", \"IMEI\": \"999999999999999\", \"DeviceKey\": \"XXX99xXX-...\", \"DeviceId\": \"9FF9F9FFF99FFFFF9999F9FFF99999F9\", \"DeviceType\": \"MarcaModelo\", \"OSName\": \"Android\", \"OSVersion\": \"7.0\", \"Email\": \"[email protected]\", \"ZipCode\": \"99999999\", \"City\": \"Cidade do Exemplo.\", \"State\": \"Estado do Exemplo.\", \"Enable\": false}" então remova essa uses
  12. ?-não entendi mas se for isso Net.HttpClient, Net.URLClient, NetConsts;
  13. uses System.Net.HttpClient, System.Net.URLClient, System.NetConsts;
×
×
  • Create New...