Problema ao consultar horario na internet

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problema ao consultar horario na internet

Mensagem por lucimauro »

Código: Selecionar todos

Function pega_databrasilia2
  Local ctexto:='Local time in Brasilia', cUrl, oWeb, cRet, cPagina, cDia, cMes, cAno,cTimeini,cDiferTempo
  cUrl:="https://www.timeanddate.com/worldclock/fullscreen.html?n=45"
  ctimeini:=Time()
  #if !defined(__HBSCRIPT__HBSHELL)
      REQUEST __HBEXTERN__HBSSL__
  #endif
  if Empty(oURL:=TUrl():New(cURL))
     GravaLogControl("Invalid URL "+cURL)
     Return CToD("")
  endif
  if !(oURL:cProto=="http") .and. !(oURL:cProto=="https")
     GravaLogControl("This is a header test for http/https. Use an http/https address.")
     Return CToD("")
  Endif
  if oURL:cProto=="https" .and. ! tip_SSL()
     GravaLogControl("Error: Requires SSL support")
     Return CToD("")
  Endif
  Try
    oHTTP:=TIPClientHTTP():New(oURL)
    oHTTP:nConnTimeout:=20000
  catch oError
    GravaLogControl("Data internet - TIPClientHTTP error :"+oError:Description)
    Return CToD("")
  end
  Try
    oHTTP:Open(cURL)
    //cPagina:=oHTTP:ReadAll() // Baixa todo o conteúdo do site.
    cPagina:=oHTTP:Read() // Baixa todo o conteúdo do site.
  catch oError
    GravaLogControl("Data internet - GET error :"+oError:Description)
    Return CToD("")
  end  
  oHTTP:Close()
  cDiferTempo:=(timetosec(Time())-timetosec(cTimeini))/60
  if cDiferTempo > 0.30 // 30 segundos gravar log desta demora
     GravaLogControl("Data internet - demora no acesso "+AllTrim(Str(cDiferTempo,6,2))+ " segundos")
  endif
  If cPagina != nil .and. cTexto $ cPagina
     cPagina := Substr(cPagina,At(cTexto,cPagina)+25)
     cPagina := Substr(cPagina,At(",",cPagina)+1)
     cPagina := Alltrim(Substr(cPagina,1,At("<",cPagina)-1))
     cDia := Strzero(Val(Substr(cPagina,1,At(" ",cPagina))),2,0)
     cPagina := Substr(cPagina,At("de ",cPagina)+3)
     cMes := VqMes(lower(Alltrim(Substr(cPagina,1,At(" ",cPagina)))))
     cPagina := Substr(cPagina,At("de ",cPagina)+3)
     //cAno := Substr(cPagina,1,At(hb_eol(),cPagina)-1)
     cAno := AllTrim(cPagina)
     //cPagina := Substr(cPagina,At(hb_eol(),cPagina)+2)
     cData := cDia+"/"+cMes+"/"+cAno
     //cHora := Substr(cPagina,1,8)
     cRet:=CToD(cData)  // +'*'+cHora
  else
     GravaLogControl("Data internet - nao encontrado LOCAL TIME IN BRASILIA no retorno")
     if cPagina != nil
        GravaLogControl("Retorno - "+cPagina)
     endif
     cRet:=CToD("")
  endif
  return(cRet)
Bom dia, eu estava usando esse código para pegar o horário de brasilia, a poucos dias deixou de funcionar, alguém aqui consome esse serviço e esta funcionando?

Recebo esse erro :Requested host does not match any Subject Alternative Names (SANs) on TLS certificate [33ed11741524d29b5baab5e67dea1917c4b2b4ce8c7ce6611602de7f8d464057] in use with this connection.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema ao consultar horario na internet

Mensagem por JoséQuintas »

teste.png
a princípio o link continua funcionando.
Se for windows, mais prático não usar hbtip.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problema ao consultar horario na internet

Mensagem por lucimauro »

Continua funcionando sim, apenas essa rotina que funcionava ate 30 dias atrás parou de funcionar e eu não descobri o porque.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema ao consultar horario na internet

Mensagem por JoséQuintas »

lucimauro escreveu:Recebo esse erro :Requested host does not match any Subject Alternative Names (SANs) on TLS certificate [33ed11741524d29b5baab5e67dea1917c4b2b4ce8c7ce6611602de7f8d464057] in use with this connection.
Certificado não é válido pra conexão TLS.
Ou o do site, ou o que o programa usou na conexão.
Talvez pelo número do certificado que mostrou possa pesquisar qual é.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problema ao consultar horario na internet

Mensagem por lucimauro »

Pois é, veja que na chamando da função não usa nenhum certificado, ainda não consegui descobrir esse problema.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema ao consultar horario na internet

Mensagem por JoséQuintas »

lucimauro escreveu:Pois é, veja que na chamando da função não usa nenhum certificado, ainda não consegui descobrir esse problema.
Não USAVA, agora precisa usar.
Ou... justo o tal certificado expirou.
Faça pelo controle Microsoft e veja se funciona.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Problema ao consultar horario na internet

Mensagem por Itamar M. Lins Jr. »

Olá!
Eu tô pensando na versão do SSL 1.1 que pode ter sido finalizada pelo servidor. O Harbour usa a versão Open SSL 1.1.
Alguma coisa nesse sentido. Tem que atualizar a versão do Open SSL do Harbour.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Problema ao consultar horario na internet

Mensagem por Daniel »

Da para usar assim

Código: Selecionar todos

	
Local cUrl  := "https://www.timeanddate.com/worldclock/fullscreen.html?n=45"
Try
      oServer:= win_OleCreateObject( "MSXML2.ServerXMLHTTP.6.0")
Catch
      MsgInfo('Erro na Criação do Serviço')
      Return .f.
End
Try
      oServer:Open( "GET", cUrl, .f. )
      oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
      oServer:SetRequestHeader( "Connection", "keep-alive" )
      oServer:Send()
      oServer:WaitForResponse( 5000 )
Catch
      MsgInfo('Erro na Conexão com o Site')
      Return .f.
End
cRet   := oServer:ResponseBody
//   MemoWrit("site.txt", cRet)

   nIni   := At('<div id=rs1><div>',  cRet ) + 17
   cHtml1:= SubStr( cRet, nIni)
   nFim   := At('</div><div id=i_date>', cHtml1 ) - 1
   MsgInfo(SubStr(cRet, nIni, nFim))

   nIni  := At('</div><div id=i_date>',  cRet) + 21
   cHtml1:= SubStr( cRet, nIni)
   nFim  := At('</div><div id=i_time>', cHtml1) - 1
   MsgInfo( SubStr(cRet, nIni, nFim))

   nIni := At('</div><div id=i_time>',  cRet) + 21
   cHtml1:= SubStr( cRet, nIni)
   nFim := At('</div><div id=i_timea>', cHtml1) - 1
   MsgInfo(SubStr(cRet, nIni, nFim))
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problema ao consultar horario na internet

Mensagem por lucimauro »

Itamar pode ser realmente isso lembrando que estou usando a build do harbour de 17/10/22.
Daniel assim como voce mostrou funciona e adotei esse novo método.
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problema ao consultar horario na internet

Mensagem por lucimauro »

Bom dia.
Pelo método do daniel fiz um teste com windows serv e retornar erro de acesso a canais menos seguro então não tem como colocar em produto como esse metodo.
diegopego
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 29 Jul 2016 14:48
Localização: TEOFILO OTONI

Problema ao consultar horario na internet

Mensagem por diegopego »

Eu tentaria usar NTP.
Não conheço um cliente em Harbour, mas existem vários em C

https://lettier.github.io/posts/2016-04 ... -in-c.html
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Problema ao consultar horario na internet

Mensagem por lucimauro »

Ola diego
Consegui resolver esse problema usando um funcao que me retorna o data e hora de um servidor NTP, agora ficou bom.
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Problema ao consultar horario na internet

Mensagem por NiltonGM »

Daniel, isto é exatamente o que preciso para consumir uma API, onde posso encontrar essa dll MSXML2.ServerXMLHTTP.6.0?
No meu Windows 10pro achei em C:\Windows\System32\msxml6.dll versão: 6.0, tenho que copiar esta DLL para raiz do meu projeto? Meu aplicativo vai rodar no meu cliente que é Windows 7pro. Tenho que distribuir essa dll?

Grato
Nilton Medeiros
nilton@sistrom.com.br
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Problema ao consultar horario na internet

Mensagem por alxsts »

Olá!
NiltonGM escreveu:onde posso encontrar essa dll MSXML2.ServerXMLHTTP.6.0?
Não precisa copiar nenhuma DLL...

Isto faz parte da biblioteca da API do Windows incorporada ao Harbour (HbWIN). Basta incluí-la no teu projeto ou compilação...

Exemplo:

Código: Selecionar todos

HbMk2 SeuPrograma hbwin.hbc
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema ao consultar horario na internet

Mensagem por JoséQuintas »

Só complementando:

É exatamente essa DLL que encontrou.
É que o nome interno de uso não é o mesmo nome da DLL.
Só fazer como o AlexSts indicou.

Tem casos aonde é outro nome, faça o teste com essa primeiro.
De qualquer jeito, é usando o que já vém instalado no Windows.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder