Ir para conteúdo
  • Cadastre-se

dev botao

ACBrConsultaCNPJ com problemas


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

Recommended Posts

Caros amigos,

Aparentemente a Receita Federal mudou algo internamente para consultar o CNPJ, pois sempre que estou tentando consultar com o componente.

Este problema está ocorrendo desde ontem dia 23/06/2015.

Segue imagem do erro que ocorre ao consultar.

Agradeço a atenção e peço ajuda para a solução...

Erro.png

Link para o comentário
Compartilhar em outros sites

  • Consultores

Mas se você conseguir depurar e identificar onde é o erro ia ser uma boa, hein...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Mesmo problema aqui...

Cesar Balbinott por favor diga como fez para achar a solução se possivel

Editado por Maurício Sareto

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

Pois é, eu fiz o seguinte, alterei na função TACBrConsultaCNPJ.GetCaptchaURL a linha 

Self.HTTPGet('http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp');

 para 

Self.HTTPGet('http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/captcha/gerarCaptcha.asp');

testei e não funcionou, então voltei o código original e quando fui testar funcionou, por isso acho que alguma instabilidade no servidor da receita, pois não fiz nada, e agora não está mais funcionando.

Link para o comentário
Compartilhar em outros sites

Preciso encontrar o endereço certo...

Continua com problemas.

Foi uma pequena mudança estrutural na página da receita.

Nos componentes precisa alterar o ACBrSocket para dar certo, porém eu não sei se outros componentes usam as rotinas que tem que ser alteradas.

Este é o meu problema.

Quero continuar usando os componentes de forma alinhada com todos e não fazer algo personalizado para resolver somente meu problema.

Atenciosamente...

Marcus Vinicius Scarpelli

Link para o comentário
Compartilhar em outros sites

  • Consultores

Mas você já descobriu onde tem que alterar o ACBrSocket? Pode anexar a alteração aqui?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

O problema parou de ocorrer, mas enquanto estava ocorrendo alterei a seguinte procedure na parte em negrito do ACBrSocket:
Obs: Quando estava dando erro fiz esta modificação e o erro parou. Mantive desta forma e o erro não ocorre mais nem desta forma e nem da outra que estava.

procedure TACBrHTTP.HTTPMethod(Method, AURL: String);
var
  OK : Boolean ;
  {$IFNDEF NOGUI}
   OldCursor : TCursor ;
  {$ENDIF}
   CT, Location : String ;
begin
  {$IFNDEF NOGUI}
    {$IFDEF FMX}
    OldCursor := Screen.ActiveForm.Cursor ;
    Screen.ActiveForm.Cursor := crHourGlass;
    {$ELSE}
     OldCursor := Screen.Cursor ;
     Screen.Cursor := crHourGlass;
    {$ENDIF}
  {$ENDIF}
  try
    RespHTTP.Clear;
    fURL := AURL;

    {$IFDEF UNICODE}
     HTTPSend.Headers.Add('Accept-Charset: utf-8;q=*;q=0.7') ;
    {$ENDIF}

    if Assigned( OnAntesAbrirHTTP ) then
       OnAntesAbrirHTTP( AURL ) ;

    // DEBUG //
    //HTTPSend.Document.SaveToFile( 'c:\temp\HttpSend.txt' );

    HTTPSend.HTTPMethod(Method, AURL);

    while HTTPSend.ResultCode = 302 do
    begin
      Location := Trim(SeparateLeft( GetHeaderValue('Location:'), ';' ));

      //Mudança para problema de consulta da receita federal 23/06/2015
      if Method = 'GET' then
        AURL := 'http://www.receita.fazenda.gov.br' + Location
      else
        AURL := GetURLBasePath( AURL ) + Location;
      //--------------------------------------------------------------

      HTTPSend.Clear;
      HTTPSend.HTTPMethod('GET', AURL ) ;
    end ;

    OK := HTTPSend.ResultCode = 200;
    RespHTTP.LoadFromStream( HTTPSend.Document ) ;
    fURL := AURL;

    // DEBUG //
    //RespHTTP.SaveToFile('c:\temp\HttpResp.txt');
    //HTTPSend.Headers.SaveToFile('c:\temp\HeaderResp.txt');

    if ParseText then
      RespHTTP.Text := ACBrUtil.ParseText( RespHTTP.Text, True, False );

    // Verifica se a Resposta está em ANSI //
    CT := LowerCase( GetHeaderValue('Content-Type:') );
    RespHTTP.Text := DecodeToSys( RespHTTP.Text, (pos('utf-8', CT) > 0) );

    if not OK then
       raise EACBrHTTPError.Create( 'Erro HTTP: '+IntToStr(HTTPSend.ResultCode)+' '+
                                     HTTPSend.ResultString + sLineBreak +
                                     'URL: '+AURL + sLineBreak + sLineBreak +
                                     'Resposta HTTP:' + sLineBreak +
                                     String(AjustaLinhas( AnsiString(RespHTTP.Text), 80, 20) )) ;
  finally
    {$IFNDEF NOGUI}
    {$IFDEF FMX}
     Screen.ActiveForm.Cursor := OldCursor;
    {$ELSE}
     Screen.Cursor := OldCursor;
    {$ENDIF}
    {$ENDIF}
  end;
end;

Atenciosamente...

Marcus Vinicius Scarpelli

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Essa sua alteração realmente não pode ser aplicada ao componente. Ficou gravado o valor do endereço do site de uma maneira que não pode ser alterada. Se o componente estiver acessando outro site isso vai resultar em problemas.

Estou estudando o tratamento, acho que encontrei alguma coisa, mas preciso de mais testes.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Por este motivo eu disse que estava com receio de alterar o ACBrSocket.

Se for somente para resolver a questão do CNPJ, funciona certinho.

Agora, com a alteração ou sem a alteração está funcionando das duas formas normalmente.

Se precisar, estou a disposição para ajudar.

Estou trabalhando numa consulta para o CEI do INSS.

Já encontrei o link para consulta, mas estou apanhando muito para montar a consulta.

Agradeço se alguém puder ajudar.

Segue o link: http://www3.dataprev.gov.br/cws/contexto/captchar/index_salEmpresa2.html

Atenciosamente...

Marcus Vinicius Scarpelli

Link para o comentário
Compartilhar em outros sites

  • Consultores

Por favor, não misture os assuntos. Se quiser ajuda com outro componente/problema, crie um novo tópico conforme as regras.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Por este motivo eu disse que estava com receio de alterar o ACBrSocket.

Se for somente para resolver a questão do CNPJ, funciona certinho.

Agora, com a alteração ou sem a alteração está funcionando das duas formas normalmente.

Se precisar, estou a disposição para ajudar.

 

Visto que não tem sido mais possível reproduzir o problema, estou analisando o problema utilizando alguns sites de testes. Dois deles dão respostas em erro http de acordo com o que queremos:

https://jigsaw.w3.org/HTTP/300/Overview.html

http://httpstat.us/

Fiz alguns testes utilizando o ACBrConsultaCNPJ nestes sites e percebi que pelo menos o tratamento para redirecionamentos no ACBrHTTP poderia estar incorreto. Ele não tratava o caso de caminhos absolutos.

Fiz uma correção no código com respeito a isto. Não me parece que vai resolver todos os casos. Mas visto que isso não está mais ocorrendo, acho que está "de bom tamanho".

Adicionei uma unit de teste para a função que eu criei na unit ACBrSocket.

Estou enviando ao SVN.

EDIT: Os testes unitários só foram adicionados no trunk2.

Editado por EMBarbosa
  • Curtir 3

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

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