Ir para conteúdo
  • Cadastre-se

dev botao

dev botao

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

Recommended Posts

Postado
  Em 25/01/2018 at 12:16, Daniel Simoes disse:

Veja a ACBrSocket.... Você pode ver exemplos de POST, GET usando a ACBrSocket em componentes da aba TCP como ACBrCEP, ACBrIBGE, ACBrConsultaCNPJ, etc

Expandir  

Obg Daniel, vou dar uma olhada, mas já estava seguindo um exemplo que encontrei aqui no fórum mesmo com o uso do httpsend da synalist que já está sendo usado pelo ACBr, oque vc acha?

  • Membros Pro
Postado

Filipe, 

Acredito que o que o Daniel falou do ACBrSocket é a melhor solução, fica fácil para implementar.

Vou conseguir "mexer" nisso a tarde, se conseguir evoluir me comunique.

att

  • Curtir 1

Elias Jakubowski

LS Technologies - www.lstech.com.br

Postado

Bom dia pessoal.

Estou fazendo desta forma:

var
  Post: TStringStream;
  ACBrHTTP: TACBrHTTP;
begin
  Post := TStringStream.Create('');
  Post.WriteString( 'login=' + EncodeURLElement(FPConfiguracoesNFSe.Geral.UserWeb) + '&' );
  Post.WriteString( 'senha=' + EncodeURLElement(FPConfiguracoesNFSe.Geral.SenhaWeb) + '&' );
  Post.WriteString( 'f1=' + aFile );

  ACBrHTTP := TACBrHTTP.Create(nil);

  ACBrHTTP.HTTPSend.Clear;
  Post.Position:= 0;
  ACBrHTTP.HttpSend.Document.Position:= 0;
  ACBrHTTP.HttpSend.Document.CopyFrom(Post, Post.Size);
  ACBrHTTP.HTTPSend.MimeType := 'application/x-www-form-urlencoded';
  ACBrHTTP.HTTPSend.Cookies.Add('flag=1');
  ACBrHTTP.HTTPPost( URL );
end;

Consegui fazer o login no webservice, mas informa que não pode carregar o arquivo.

  • Membros Pro
Postado

Bom dia,

Ítalo/Daniel.

As fontes postadas pelo Filipe estão de acordo. 

Vocês conseguem adicionar no versionador?

att

Elias Jakubowski

LS Technologies - www.lstech.com.br

  • Fundadores
Postado

A modificação não parece integrada com o ACBrDFe... Observe que já existe o método TDFeWebService.EnviarDados... ele já faz o POST, usando a tecnologia que o usuário escolheu (WinLNet, WinHttp, OpenSSL) não seria apenas o caso de sobrescrever a rotina que gera o conteúdo do Documento (FPEnvelopeSoap) e deixar a "EnviarDados", já fazer o trabalho dela ?

De uma olhada em: DefinirServicoEAction, e DefinirDadosMsg;

O problema dessa implementação.. é que ela não respeitará a configuração em TACBrDFeSSL, definida para comunicação HTTPS... pois ACBrSocket, sempre usará OpenSSL

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
  Em 29/01/2018 at 19:23, Daniel Simoes disse:

A modificação não parece integrada com o ACBrDFe... Observe que já existe o método TDFeWebService.EnviarDados... ele já faz o POST, usando a tecnologia que o usuário escolheu (WinLNet, WinHttp, OpenSSL) não seria apenas o caso de sobrescrever a rotina que gera o conteúdo do Documento (FPEnvelopeSoap) e deixar a "EnviarDados", já fazer o trabalho dela ?

De uma olhada em: DefinirServicoEAction, e DefinirDadosMsg;

O problema dessa implementação.. é que ela não respeitará a configuração em TACBrDFeSSL, definida para comunicação HTTPS... pois ACBrSocket, sempre usará OpenSSL

Expandir  

@Daniel Simoes

 Boa tarde, já tentamos, eu e o @Elias LS Tech,  fazer o envio na maneira padrão, com SOAP, mas o provedor IPM só aceita assim, seria possível liberar as alterações para pelo menos quem precisa gerar com IPM conseguir desta forma e tentar mais algumas formas para daqui por diante.

o @Elias LS Tech e o @Léo e eu estamos no aguardo para podermos liberar para nossos clientes.

  • Moderadores
Postado
  Em 25/01/2018 at 11:27, Filipe Natividade disse:

Infelizmente o provedor IPM não utiliza padrão SOAP, então se vc tiver alguma ideia de como fazer sem o INDY, por favor, me informe que faço a alteração, Eu e o Elias tentamos de outra forma, mas sem sucesso.

Expandir  

Qual é exatamente o problema em usar o EnviarDados original?

Tem o provedor Agili no componente que é REST e funciona normalmente.

Pelo que vi no IPM.ini já está configurado para não fazer o envelopamento.

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
Postado
  Em 30/01/2018 at 10:41, Filipe Natividade disse:

No manual da IPM não possui nenhuma menção para fazer o envelopamento, apenas para dar dar um post com tais parâmetros, agora se alguém puder dar um exemplo de com envelopamento agradeço.

Ou algum exemplo de como utilizar o EnviarDados original.

Manual Eletron V2.pdfUnavailable

Expandir  

Eu não disse que precisava... se não é SOAP acredito que não deva.

Perguntando novamente, qual o problema ao usar o EnviarDados original?

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado (editado)
  Em 30/01/2018 at 11:40, BigWings disse:

Eu não disse que precisava... se não é SOAP acredito que não deva.

Perguntando novamente, qual o problema ao usar o EnviarDados original?

Expandir  

simplesmente ele não consegue logar no webservice, não reconhece usuário e senha, sem ser no modelo que está em anexo, não conseguimos fazer ele autenticar no webservice.

Olhando o manual, como você faria para enviar esses parâmetros post no EnviarDados  original?

Editado por Filipe Natividade
  • Moderadores
Postado
  Em 30/01/2018 at 11:44, Filipe Natividade disse:

simplesmente ele não consegue logar no webservice, não reconhece usuário e senha, sem ser no modelo que está em anexo, não conseguimos fazer ele autenticar no webservice.

Olhando o manual, como você faria para enviar esses parâmetros post no EnviarDados  original?

Expandir  

Me parece que apenas acrescentando as linhas referentes a autenticação no DefinirDadosMsg pode resolver.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Moderadores
Postado
  Em 30/01/2018 at 13:25, Filipe Natividade disse:

Como que eu posso fazer uma requisição POST simples, não SOAP, dentro dos métodos padrões?, o que será preciso reimplementar?

Expandir  

Pelo que entendi dos fontes, a única diferença de uma requisição SOAP para uma comum é que a SOAP acrescenta o SoapAction como header na requisição. Veja o método Enviar nas classes derivadas de TDFeSSLHttpClass.

No caso do Agili, não precisou fazer nada para alterar o tipo de requisição, mesmo enviando um SoapAction qualquer a resposta vem normalmente.

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Este tópico foi criado há 2586 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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 8 segundos...