Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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

Postado

De acordo com minha depuração parece que o problema é no ACBrSocket.

Como isto envolve outros componentes achei melhor eu não mexer.

Espero que tenhamos alguma solução em breve.

Atenciosamente...

Marcus Vinicius Scarpelli

  • Consultores
Postado

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.
Postado

É o que estou tentando fazer, mas terei que mexer no ACBrSocket e estou com receio, pois existem outros componentes que o utilizam e não conheço todos os componentes do ACBr...

Atenciosamente...

Marcus Vinicius Scarpelli

Postado

MVScarpelli você ainda está com este problema?  Eu estava com o mesmo problema, alterei alguns endereços aqui e voltei eles e funcionou, creio que seja alguma indisponibilidade nos servidores do sefaz pois está assim desde ontem, verifica ai.

Postado

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.

Postado

Tentem acessar este endereço direto pelo navegador:

http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp

aqui quando funciona este código, eu consigo fazer a busca, mas as vezes nem no navegador abre.

Postado

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

  • Consultores
Postado

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.
Postado

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

 

  • Consultores
Postado

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.
Postado

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

  • Consultores
Postado

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.
  • Consultores
Postado (editado)

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