Buenas tardes para todos
Bueno les cuento que buscando solucionar este problema que tenemos, logramos compilar la aplicación con harbour, como nos recomendó Cristobal, estamos intentando usar la libreria curl, el problema ahora es que no logramos que el servidor nos entregue una respuesta. Necesitamos ayuda para traducir el código que veníamos usando por el de la libreria curl.
Código anterior
- Code: Select all Expand view RUN
cBas64 := hb_base64encode(::user+":"+::pass,len(::user+":"+::pass))
ohttp := CreateObject( "MSXML2.XMLHTTP" )
ohttp:Open( "POST" , ::urlenvio ,.F.)
oHttp:SetRequestHeader("cache-control", "no-cache")
ohttp:SetRequestHeader("content-type", "application/json" )
ohttp:SetRequestHeader("authorization", "Basic "+cBas64 )
TRY
ohttp:Send( ::cdnaJson )
response := ohttp:responseText
CATCH oError
cError := "Error: " + cValToChar( oError:GenCode) + ;
" SubC: " + cValToChar( oError:GenCode) + " OSCode: " + cValToChar( oError:GenCode) + CRLF + ;
"SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + "Envio de CURL: " + oError:Description
exito := {.f.,cError}
return exito
END
Código con curl, que encontramos en el foro
- Code: Select all Expand view RUN
cBas64 := hb_base64encode(::user+":"+::pass,len(::user+":"+::pass))
curl_global_init()
hCurl := curl_easy_init()
if !empty( hCurl )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, ::urlenvio )
AAdd( aHeaders, "authorization: Basic "+cBas64 )
AAdd( aHeaders, "content-type : application/json" )
AAdd( aHeaders, "cache-control : no-cache" )
curl_easy_setopt( hCurl, HB_CURLOPT_HTTPHEADER, aHeaders )
curl_easy_setopt( hCurl, HB_CURLOPT_CONNECTTIMEOUT , 100 )
curl_easy_setopt( hCurl, HB_CURLOPT_POST, 1)
curl_easy_setopt( hCurl, HB_CURLOPT_CUSTOMREQUEST, "POST")
curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, ::cdnaJson )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
cError := curl_easy_perform( hCurl )
if !Empty( cError )
MsgInfo( curl_easy_strerror( cError ), "Error" )
endif
cTexto := curl_easy_dl_buff_get( hCurl )
fw_memoedit( cTexto ) //Creo que aqui viene la respuesta
curl_easy_reset( hCurl )
endif
curl_global_cleanup()
Este es el error que se captura en el fw_memoedit()
- Code: Select all Expand view RUN
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
Luego de esto la aplicación se cierra sin que muestre ningún error y tampoco genera el error en el archivo error.log
De antemano gracias por la ayuda