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