Page 1 of 1

Problemas con curl compilado msvc y harbour

Posted: Sat Jan 18, 2025 8:43 pm
by leandro
Hola buenas tardes para todos, debido a un problema que se generó con las operaciones en xharbour 64 bits, nos vimos en la necesidad de migrar a harbour y msvc, la verdad no hubiéramos querido salir de xharbour pero ese bug si es un problema significativo y parece complicado, ya que ni Antonio, ni Enrico han podido dar con la solución.

Lo que si determino Enrico, es que es únicamente con xharbour y en 64 bits, por eso la necesidad de migrar.

El post del error en las operaciones, por si alguien quiere consultarlo.
https://forums.fivetechsupport.com/view ... hp?t=45315

Por otro lado, ya logramos compilar la aplicación, pero hay varias cosas que no logramos hacer funcionar, en este post vamos a reportar el problema con la libcurl, montamos este ejemplo para ver si alguien nos puede ayudar, tampoco sabemos si hace falta agregar alguna lib o dll.

El codigo:

Code: Select all | Expand

#include "FiveWin.ch"
#include "hbcurl.ch"

function Main()
	recuperainfo() //Con el este código funciona, lo montamos para comprobar que el endpoint está funcionando.
	recuperainfocurl()  //Pero con curl no arranca.
return nil

Function recuperainfo()
Local aHasRes
Local hInfo := {=>}
Local response := nil
Local cUrl := "https://hymplus.com/factura/ws_msvc.php"
Local cAno := transform(year(date()),"9999")

IF !IsInternet()
	msginfo("No Se Pudo Comprobar La Conexión a Internet")
ELSE
	user := "hymlymatest"
	pass := "HymTestLeo"   //TEMPORAL
	cBas64 := hb_base64encode(user+":"+pass,len(user+":"+pass))

	//NIT DEL AUTORIZADO
	hInfo["ano"] = cAno
	hInfo["usua"] := user
	hInfo["pass"] := pass

	enviar := hb_jsonEncode( hInfo )	

	ohttp := CreateObject( "MSXML2.XMLHTTP" )
	ohttp:Open( "POST" ,cUrl,.F.)
	oHttp:SetRequestHeader("cache-control", "no-cache")
	ohttp:SetRequestHeader("content-type", "application/json" )
	ohttp:SetRequestHeader("authorization", "Basic "+cBas64 )
	TRY
	  ohttp:Send(enviar)
	CATCH
		msginfo("No Se Pudo Enviar Solicitud")
	END
	response := ohttp:responseText
	
	if valtype(response)!="U"
		aHasRes := hash()
		hb_jsondecode(response ,@aHasRes)
		if valtype(aHasRes)="U"
			aHasRes := {=>}
		endif
	else
		msginfo("Respuesa del servidor no valida")
	endif
	
	xbrowse(aHasRes,"SIN CURL")
	
ENDIF
return nil 

Function recuperainfocurl()
Local aHasRes,enviar,oCurl
Local hInfo := {=>}
Local response := nil
Local cUrl := "https://hymplus.com/factura/ws_msvc.php"
Local cAno := transform(year(date()),"9999")
Local aHeader := {} 

IF !IsInternet()
	msginfo("No Se Pudo Comprobar La Conexión a Internet")
ELSE
	user := "hymlymatest"
	pass := "HymTestLeo"   //TEMPORAL
	cBas64 := hb_base64encode(user+":"+pass,len(user+":"+pass))

	AADD(aHeader,"Authorization: Basic "+cBas64 )
	AADD(aHeader,"Content-Type: application/json")
	AADD(aHeader,"cache-control: no-cache")

	//NIT DEL AUTORIZADO
	hInfo["ano"] = cAno
	hInfo["usua"] := user
	hInfo["pass"] := pass
	enviar := hb_jsonEncode( hInfo )	

	oCurl = curl_easy_init()
	
	IF !EMPTY( cUrl )
		curl_easy_setopt( oCurl, HB_CURLOPT_URL, cUrl )
		curl_easy_setopt( oCurl, HB_CURLOPT_DL_BUFF_SETUP )
		curl_easy_setopt( oCurl, HB_CURLOPT_SSL_VERIFYPEER, 0 )
		curl_easy_setopt( oCurl, HB_CURLOPT_POSTFIELDS, enviar )
		curl_easy_setopt( oCurl, HB_CURLOPT_CUSTOMREQUEST , "POST")
		curl_easy_setopt( oCurl, HB_CURLOPT_HTTPHEADER, aHeader )		

		IF CURL_EASY_PERFORM( oCurl ) == 0
			response = curl_easy_dl_buff_get( oCurl )
		ENDIF
		
		curl_easy_cleanup( oCurl )
	
	ENDIF	
	
	aHasRes := hash()
	
	hb_jsondecode(response ,@aHasRes)
	if valtype(aHasRes)="U"
		aHasRes := {=>}
	endif
	
	xbrowse(aHasRes,"USANDO LA CURL")
	
ENDIF
return nil 
El resultado
Image

La carpeta con los archivos con los que generamos el ejecutable
https://hymplus.com/descargas/cmplar_test_64.zip

Gracias de antemano

Re: Problemas con curl compilado msvc y harbour

Posted: Sun Jan 19, 2025 3:54 pm
by Antonio Linares
Querido Leandro,

> ya que ni Antonio, ni Enrico han podido dar con la solución.

https://forums.fivetechsupport.com/view ... 29#p277029

Re: Problemas con curl compilado msvc y harbour

Posted: Sun Jan 19, 2025 7:01 pm
by Antonio Linares
xHarbour 64 bits para Borland arreglado y funcionando bien :wink:

https://forums.fivetechsupport.com/view ... 06#p277032

Re: Problemas con curl compilado msvc y harbour

Posted: Sun Jan 19, 2025 10:52 pm
by leandro
Antonio Linares wrote: Sun Jan 19, 2025 3:54 pm Querido Leandro,

> ya que ni Antonio, ni Enrico han podido dar con la solución.

https://forums.fivetechsupport.com/view ... 29#p277029
Antonio muchas gracias como siempre por tan eficiente ayuda. Alcance a entrar en pánico jejejejejejeje :oops: :oops: :oops: :oops: