Página 3 de 3
Data de criacao do arquivo
Enviado: 24 Mar 2022 08:56
por Linguagemclipper
JoséQuintas escreveu:Por http já aconteceu de baixar um arquivo DA SEMANA PASSADA.
Não sei se era cache do servidor.
Por isso sempre usei arquivo separado pra checagem, e depois pelo MySQL pra ficar mais garantido ainda.
Inclusive testando o UPLOAD.
Com o chrome já tive problema do upload carregar arquivo antigo, ou download baixar arquivo antigo.
Quando digo chrome: com o chrome instalado, afetando o funcionamento do Windows.
Isso foi faz tempo, de lá pra cá deve ter melhorado tudo.
É o cache do servidor mesmo! Toda vez que subo ou altero um arquivo no servidor eu tenho que apagar o cache (flush cache) senão vai mostrar o antigo do cache ainda.
Data de criacao do arquivo
Enviado: 24 Mar 2022 09:04
por Linguagemclipper
Minha função ficou assim (a parte que interessa ao debate):
Código: Selecionar todos
// [...]
MSGRODA("Obtendo lista de arquivos...", "W+/BG")
aNUVEM := oFTP:listFiles()
X := ASCAN(aNUVEM, {|A| UPPER(A[1]) == UPPER(cMANUAL)})
IF X>0
tHELP2 := aNUVEM[X][2] // TAMANHO DO ARQUIVO
oFTP:exGauge := {|nSENT, nTOTAL, oFTP| FtpProgress(nSENT, nTOTAL, oFTP, tHELP2) } // BARRA DE PROGRESSO
dHELP2 := aNUVEM[X][3] // DATA DO ARQUIVO
hHELP2 := aNUVEM[X][4] // HORA DO ARQUIVO hh:mm
// EQUIPARAR HORAS
hHELP1 := LEFT(hHELP1, LEN(hHELP2) ) // SE REMOTO HH:MM ENTÃO LOCAL HH:MM
// Converter fuso horário UTC 0 para -3
nSECS2 := SECS( hHELP2 )
nUTC3 := (3*3600) // 3h
nSECS2 -= nUTC3 // -3h
IF nSECS2 >= 0
hHELP2 := TSTRING( nSECS2 ) // TRANSFORMA EM HORA
ELSE
// MADRUGADA DO DIA ANTERIOR, VOLTA 1 DIA
dHELP2 -= 1 // VOLTA 1 DIA
hHELP2 := TSTRING( 86400 + nSECS2 ) // TRANSFORMA EM HORA: 24h-diferença
nSECS2 := SECS( hHELP2 ) // ATUALIZA nSECS2
ENDIF
ENDIF
nLAG := ABS( nSECS2 - nSECS1 ) // LAG DO UPLOAD
IF (nLAG/60) < 2 // TOLERÂNCIA DE LAG: 2min
// ZERA A DIFERENÇA IRRELEVANTE
nSECS1 := nSECS2
ENDIF
IF dHELP1 < dHELP2 .OR. (dHELP1 == dHELP2 .AND. nSECS1 < nSECS2 )
nBAIXA := ALERT("Há uma nova versão do manual, baixar agora?", {"Sim", "Não"})
IF nBAIXA = 1
MSGRODA("Iniciando download...", "W+/BG")
IF oFTP:downloadFile( cMANUAL )
MSGRODA("Arquivo baixado com sucesso!", "W+/BG")
ELSE
MSGRODA(oFtp:lastErrorMessage(), "W+/BG")
ENDIF
ENDIF
ELSE
MSGRODA("Você tem o manual mais recente!", "W+/BG")
ENDIF
Ler XML em site https com comando TIpClientHttp no xharbour
Enviado: 24 Abr 2022 06:12
por florencio
Pessoal, Nao sei se aqui é o melhor lugar. Muitos sites estão deixando de ser http e migrando para https então sem duvida vamos ter muita gente com este problema. Vi algumas soluções aqui mas nao resolvi. Pelo que vi para e-mail com ssl talvez funcione mas para sites não.
Estou fazendo uma requisição em um endereço https com o comando TIpClientHttp e recebo o seguinte erro: Error Base/1081 Operation not supported: TIPCLIENTHTTP:New() Arguments: ([1] = type: O val: { TIPCLIENTEHTTP Object } [2] = Type: C Val: https)
Ja compilei o sistema usando as libs sugeridas tip.lib tipssl.lib ssleay32.lib libeay32.lib codepage.lib mas nao tive sucesso. Tentei algumas variações de comando previstas em outras versões de harbour mas nao funciona. Tentei achar os comandos similares mas tambem nao encontrei. Alguem teve sucesso?
Uso o Xharbour Build 1.2.1
Data de criacao do arquivo
Enviado: 24 Abr 2022 15:43
por Itamar M. Lins Jr.
Olá!
Estou fazendo uma requisição em um endereço https com o comando TIpClientHttp e
Teste com esse exemplo da pasta \contrib\hbtip\tests
Código: Selecionar todos
/* TIP HTTP advanced operations test */
#require "hbssl"
#require "hbtip"
#if ! defined( __HBSCRIPT__HBSHELL )
REQUEST __HBEXTERN__HBSSL__
#endif
PROCEDURE Main( cURL )
LOCAL oHTTP, oURL, i, cSite
IF Empty( oURL := TUrl():New( cURL ) )
? "Invalid URL", cURL
RETURN
ENDIF
IF ! oURL:cProto == "http" .AND. ;
! oURL:cProto == "https"
? "This is a header test for http/https."
? "Use an http/https address."
RETURN
ENDIF
IF oURL:cProto == "https" .AND. ! tip_SSL()
? "Error: Requires SSL support"
RETURN
ENDIF
oHTTP := TIPClientHTTP():New( oURL )
oHTTP:nConnTimeout := 20000
? "Connecting with", oURL:cServer
IF oHTTP:Open( cURL )
? "Connection eshtablished"
? "Retrieving", oURL:cPath, oURL:cFile, oURL:cQuery
? oHTTP:ReadToFile( "site.html" )
IF oHTTP:Get( oURL:cPath )
? "Get Successful"
FOR EACH i IN oHTTP:hHeaders
? i:__enumKey() + ":", i
NEXT
ELSE
? "Get failure (server reply:", oHTTP:cReply, ")"
ENDIF
cSite := oHTTP:Read()
//? hb_memowrit("site.html",cSite)
oHTTP:Close()
ELSE
? "Could not connect with", oURL:cServer
IF oHTTP:SocketCon == NIL
? "Connection not initiated"
ELSEIF hb_inetErrorCode( oHTTP:SocketCon ) == 0
? "Server replied:", oHTTP:cReply
ELSE
? "Error in connection:", hb_inetErrorDesc( oHTTP:SocketCon )
ENDIF
ENDIF
? "Done"
RETURN
Saudações,
Itamar M. Lins Jr.
Data de criacao do arquivo
Enviado: 02 Mai 2022 06:15
por florencio
Vou testar hoje e posto o resultado aqui. Muito obrigado pelo apoio. Ainda continuo na peleja, até encontrei alguns webservices que aceitam http mas são incompletos. Estou trabalhando com geolocalização e sem duvida o google tem as melhores soluções.