Ir para conteúdo
  • Cadastre-se

AG Sistemas

Membros Pro
  • Total de ítens

    277
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que AG Sistemas postou

  1. Pessoal consegui consumir o serviço pode encerrar o tópico https://github.com/viniciussanchez/RESTRequest4Delphi/discussions/171 procedure TForm1.Button1Click(Sender: TObject); var lRes: IResponse; lStream: TMemoryStream; begin try lStream := TMemoryStream.Create; lStream.LoadFromFile('C:\arquivo.pdf'); lStream.Position := 0; lRes := TRequest.New .BaseURL(url) .AddHeader('', '') .ContentType('application/pdf') .AddBody(lStream, false) .PUT; ShowMessage(IntToStr(lRes.StatusCode)); finally lStream.Free; end; end;
  2. bom dia! É isso mesmo eu preciso consumir a api do servidor. Tentei enviar pelo restclient mas o arquivo chega corrompido function TApiAssinatura.ConsomeAPIArquivoteste(pTokem,pUrl :String; pTPMetodo :TRESTRequestMethod;pParamHeader:String = '';pParamHeaderValor:String=''; pParamBody:String = ''; pStringList:TStringList=nil; iTimeOut:Integer= 0;sListaBody:TStringList=nil; pContentType:String=''; sBodyArquivo:string=''):string; var restClient: TRESTClient; restRequest: TRESTRequest; restResponse: TRESTResponse; sErro, sNome, sValor :String; iParametro :Integer; I: Integer; TempStream : TMemoryStream; tFStream: TFileStream; sStream : TStream; sLista : tstringlist; sTeste : String; ABytes: TBytes; begin try restClient := TRESTClient.Create(nil); restRequest := TRESTRequest.Create(restClient); restResponse := TRESTResponse.Create(restClient); try restClient.BaseURL := pUrl; restRequest.Client := restClient; restRequest.Method := pTPMetodo; restRequest.Resource := ''; restRequest.Response := restResponse; if iTimeOut > 0 then begin restRequest.Timeout := iTimeOut; end; iParametro := 0; restRequest.Params.Add; restRequest.Params[iParametro].ContentType := 'application/pdf'; if sBodyArquivo <> '' then begin { tentei deste modo TempStream := TMemoryStream.Create; TempStream.LoadFromFile(sBodyArquivo); restRequest.AddBody(TempStream,ctAPPLICATION_PDF); } ABytes := TFile.ReadAllBytes(sBodyArquivo); restRequest.Params.AddItem('body', BytesToStr(ABytes), pkREQUESTBODY, [], ctAPPLICATION_JSON); end; if trim(pContentType) <> '' then begin inc(iParametro); restRequest.Params.Add; restRequest.Params[iParametro].ContentType := pContentType;//ctAPPLICATION_XML; restRequest.Params[iParametro].Kind := pkGETorPOST; restRequest.Params[iParametro].Options := [poDoNotEncode]; restRequest.Params[iParametro].name := 'Content-Type'; restRequest.Params[iParametro].Value := pContentType; end; restRequest.Execute; if (restRequest.Response.StatusCode <> 200) then begin result := 'Erro '+restRequest.Response.StatusCode.ToString; end else if (restRequest.Response.StatusCode = 200) and (pTPMetodo = rmPUT) then begin result := '200'; end else if restRequest.Response.JSONValue.ToString <> '' then begin sTeste := StringReplace(restRequest.Response.JSONText,'\', '', [rfReplaceAll]); result := sTeste; end; except result := ''; end; finally FreeAndNil(restClient); end; end;
  3. boa tarde caso tenha algum exemplo fico no aguardo
  4. boa tarde! Desculpa incomodar é um tema fora do portal mas estou precisando enviar um arquivo pdf por PUT. Pelo postman eu consigo enviar mas quando tento montar o envio pelo delphi o arquivo vai vazio Estou add o arquivo este modo TempStream := TMemoryStream.Create; TempStream.LoadFromFile(sBodyArquivo); restRequest.AddBody(TempStream,ctAPPLICATION_PDF); -- Pelo postman funciona curl --location --request PUT 'https://URL' \ --header 'Content-Type: application/pdf' \ --data '@/C:/Users/Downloads/Teste de documento a assinar.pdf' -- Do modo que eu fiz ele envia o arquivo mas ele fica vazio mas quando manda pelo postman da certo. eu tentei enviar o arquivo por form-data mas o serviço não aceita. try restClient := TRESTClient.Create(nil); restRequest := TRESTRequest.Create(restClient); restResponse := TRESTResponse.Create(restClient); try restClient.BaseURL := pUrl; restRequest.Client := restClient; restRequest.Method := pTPMetodo; restRequest.Resource := ''; restRequest.Response := restResponse; if iTimeOut > 0 then begin restRequest.Timeout := iTimeOut; end; iParametro := 0; restRequest.Params.Add; if pContentType = '' then restRequest.Params[iParametro].ContentType := ctNone else restRequest.Params[iParametro].ContentType := pContentType; if pTokem <> '' then begin restRequest.Params[iParametro].Kind := pkHTTPHEADER; restRequest.Params[iParametro].name := 'Authorization'; restRequest.Params[iParametro].Value := pTokem; restRequest.Params[iParametro].Options := [poDoNotEncode]; end; if pStringList <> nil then begin for I := 0 to pStringList.count -1 do begin sNome := copy(pStringList[i],1,pos('|',pStringList[i])-1); sValor:= copy(pStringList[i],pos('|',pStringList[i])+1,length(pStringList[i])); inc(iParametro); restRequest.Params.Add; restRequest.Params[iParametro].ContentType := ctNone; restRequest.Params[iParametro].Kind := pkGETorPOST; restRequest.Params[iParametro].name := sNome; restRequest.Params[iParametro].Value := sValor; restRequest.Params[iParametro].Options := [poDoNotEncode]; end; end; if pParamHeader <> '' then begin inc(iParametro); restRequest.Params.Add; restRequest.Params[iParametro].ContentType := ctNone; restRequest.Params[iParametro].Kind := pkGETorPOST; restRequest.Params[iParametro].Options := [poDoNotEncode]; restRequest.Params[iParametro].name := pParamHeader; restRequest.Params[iParametro].Value := pParamHeaderValor; end; TempStream := TMemoryStream.Create; TempStream.LoadFromFile(sBodyArquivo); restRequest.AddBody(TempStream,ctAPPLICATION_PDF); if trim(pContentType) <> '' then begin inc(iParametro); restRequest.Params.Add; restRequest.Params[iParametro].ContentType := pContentType;//ctAPPLICATION_XML; restRequest.Params[iParametro].Kind := pkGETorPOST; restRequest.Params[iParametro].Options := [poDoNotEncode]; restRequest.Params[iParametro].name := 'Content-Type'; restRequest.Params[iParametro].Value := pContentType; end; restRequest.Execute; if (restRequest.Response.StatusCode = 200) then begin result := 'OK'; end else result := 'Erro'; except result := ''; end; finally FreeAndNil(restClient); end; desde ja agradeço caso alguem saiba como resolver
  5. bom dia ! Estou implementando a NFSe para SJ dos Campos e quando transmito da erro "L999 Acionar o suporte responsável" Entrei em contato com eles e me passaram o XML de modelo e eu verificando o gerado pelo ACBR esta diferente <Rps Id=""> <IdentificacaoRps> <Numero>37</Numero> <Serie>SERIE</Serie> <Tipo>1</Tipo> </IdentificacaoRps> <DataEmissao>2023-02-15</DataEmissao> <Status>1</Status> </Rps> este bloco de identificação tem no modelo deles mas não tem no xml gerado pelo acbr. Tentei add o xml que a empresa me passou mas não consegui fala que passou o limite. desde ja Agradeço.
  6. boa tarde! Vcs estão usando o NFS-e ou o NfseX ?
  7. boa tarde ! Sobre o layout eu atualizei o fonte e está aparecendo vlVersao116 não tem o vlVersao117 é isso mesmo ? desde ja agradeço!
  8. Pessoal aqui voltou a funcionar quando mudei o servidor SMTP para smtp.office365.com. https://support.microsoft.com/pt-br/office/configurações-pop-imap-e-smtp-8361e398-8af4-4e97-b147-6c6c4ac95353
  9. Pesquisando achei esta configuração mas não sei oque seria esta criptografia STARTTLS https://support.microsoft.com/pt-br/office/configurações-pop-imap-e-smtp-8361e398-8af4-4e97-b147-6c6c4ac95353
  10. bom dia ! Pessoal estou com o mesmo problema com o hotmail. Conseguiram achar alguma coisa ?
  11. Obrigado pela ajuda deu certo deu usei o Indy TCPClient. IdTCPClient := TIdTCPClient.Create; IdTCPClient.Host := sURL; IdTCPClient.Port := sPorta; IdTCPClient.ReadTimeout := 10000; IdTCPClient.Connect; sListaTeste := TStringList.create; IdTCPClient.IOHandler.WriteLn(sDadosNegativacao); sRespostaRequisicao := IdTCPClient.IOHandler.ReadString(449);
  12. Você esta certo. Eu não sabia oque seria este parametro. Fiz um teste usando "RecvString(timeout); " teoricamente neste modo ele teria que retornar oque o servidor mandar certo ? Tentei RecvBufferStr tambem não consegui pegar a string.
  13. Criei um projeto cliente que quando inicia ele conecta no exemplo de servidor TCP try frmPrincipal.fSocket.Connect('localhost','3434'); sRespostaRequisicao := fSocket.RecvTerminated(10000, #3); fSocket.SendString('teste passa para o servidor'); sRespostaRequisicao := fSocket.RecvTerminated(10000, #3); finally fSocket.CloseSocket; end; *O Cliente conecta no servidor e status do servidor inclui o "Conexão estabelecia..." mas não volta para a resposta de "Seja bem vindo". procedure TForm1.ACBrTCPServer1Conecta(const TCPBlockSocket: TTCPBlockSocket; var Enviar: AnsiString); begin mOutput.Lines.Add('Conexão estabelecida de: ' + TCPBlockSocket.GetRemoteSinIP ) ; Enviar := 'Seja bem vindo' + #13+#10; ExibirConexoes ; end; * a string que estou enviando " fSocket.SendString('teste passa para o servidor');" não esta chegando no servidor TCP
  14. Boa tarde! Pessoal eu fazendo os teste na minha maquina não consegui mandar a string nem receber as respostas do servidor local o conectar funciona. Mas em produção esta dando certo de conectar, enviar a string e não consegui pegar a resposta alguém consegue me ajudar. Estou seguindo o exemplo do Monitorplus com o Server TCP Desde já Agradeço.
  15. Estou usado o exemplo do tcp server e o modo que o monitor plus do larazus se comunica com o servidor. Liberei a porta no Firewall.
  16. Daniel obrigado pela ajuda mas não consegui enviar a string para o servidor não vai. Faz a conexão, não vem resposta que conectou e não envia a string. Estou sem ideias. Pq teoricamente era para ser bem simples.
  17. Peguei o exemplo de servidor TCP Server e fiz teste de conexão. A conexão acontece mas a string não transmite para o servidor estou usando assim. Se eu clicar na resposta do servidor vem o OK para o cliente mas a string que eu estou tentando enviar não passa. try fSocket := TBlockSocket.Create; fSocket.Connect('localhost','3434'); //Conecta normal fSocket.SendString(sDados); //não passou os dados sRespostaRequisicao := fSocket.RecvString(50000); // se eu clicar na resposta do servidor vem o OK //sRespostaRequisicao := UpperCase(Trim(fSocket.RecvTerminated(50000, #3))); finally FreeAndNil(fSocket); end; desde já Agradeço.
  18. Daniel, não da exception mas esta retornando FLastError : 11001 .
  19. Então eu entrei em contato com o responsável pelo serviço. E assim que da o fSocket.SendString(sDadosNegativacao) perguntei se badeu alguma coisa no servidor ele disse que não. sobre a string eu ja mandei por email e ele me passou q estava ok. O problema seria que não esta chegando no servidor dele.
  20. Não esta dando Exception mas tambem não esta enviando a string.
  21. Como eu consigo testar se ele conectou ?
  22. Bom dia ! Achei este tópico que fala sobre o envio . montei desta forma aparentemente conectou mas eu não estou conseguindo pegar a resposta, tem alguma tratamento diferente que tenho que fazer ? try fSocket := TBlockSocket.Create; fSocket.Connect(sURL,sPorta); fSocket.SendString(sDados); sRespostaRequisicao := UpperCase(Trim(fSocket.RecvTerminated(5000, #3))); finally FreeAndNil(fSocket); end;
  23. Este componente ele monta um servidor socket. Eu não encontrei como consumir ele.
  24. Desculpa a ignorância mas eu não achei a declaração ou um lugar que esta usando o envio via socket. Caso vc consiga me passar agradeço.
×
×
  • 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...