Problemas con curl compilado msvc y harbour

Post Reply
User avatar
leandro
Posts: 1719
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 11 times
Been thanked: 3 times
Contact:

Problemas con curl compilado msvc y harbour

Post 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
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
User avatar
Antonio Linares
Site Admin
Posts: 42393
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 9 times
Been thanked: 41 times
Contact:

Re: Problemas con curl compilado msvc y harbour

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42393
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 9 times
Been thanked: 41 times
Contact:

Re: Problemas con curl compilado msvc y harbour

Post by Antonio Linares »

xHarbour 64 bits para Borland arreglado y funcionando bien :wink:

https://forums.fivetechsupport.com/view ... 06#p277032
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
leandro
Posts: 1719
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 11 times
Been thanked: 3 times
Contact:

Re: Problemas con curl compilado msvc y harbour

Post 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:
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
Post Reply