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.