Página 1 de 2

Problema ao consultar horario na internet

Enviado: 23 Jan 2023 09:51
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.

Problema ao consultar horario na internet

Enviado: 23 Jan 2023 11:33
por JoséQuintas
teste.png
a princípio o link continua funcionando.
Se for windows, mais prático não usar hbtip.

Problema ao consultar horario na internet

Enviado: 23 Jan 2023 13:00
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.

Problema ao consultar horario na internet

Enviado: 23 Jan 2023 13:30
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 é.

Problema ao consultar horario na internet

Enviado: 23 Jan 2023 23:32
por lucimauro
Pois é, veja que na chamando da função não usa nenhum certificado, ainda não consegui descobrir esse problema.

Problema ao consultar horario na internet

Enviado: 24 Jan 2023 01:43
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.

Problema ao consultar horario na internet

Enviado: 24 Jan 2023 07:59
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.

Problema ao consultar horario na internet

Enviado: 24 Jan 2023 20:08
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))

Problema ao consultar horario na internet

Enviado: 24 Jan 2023 22:44
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.

Problema ao consultar horario na internet

Enviado: 25 Jan 2023 09:06
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.

Problema ao consultar horario na internet

Enviado: 03 Fev 2023 11:11
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

Problema ao consultar horario na internet

Enviado: 04 Fev 2023 19:07
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.

Problema ao consultar horario na internet

Enviado: 13 Set 2023 16:03
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

Problema ao consultar horario na internet

Enviado: 14 Set 2023 00:03
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

Problema ao consultar horario na internet

Enviado: 14 Set 2023 10:53
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.