Hola como vas?
miarcod wrote:Buenos dias
Sigo atascado con este problema y no consigo enviar el fichero.
Ya e conseguido enviar datos y que los acepte usando curl, pero lo que no consigo es enviar el fichero
Este codigo funciona
- Code: Select all Expand view
hData1 := { => }
hData2 := { => }
hMensaje := { => }
hData1[ "CodigoWG" ] := Cero(RANDOM(999999), 6)
hData1[ "Last_Name" ] := "Last_Name"
hData1[ "Company" ] := "Company"
hMensaje["data"] := { hData1 }
xJson := hb_jsonEncode(hMensaje)
if ! empty( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_POST, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cWeb)
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
curl_easy_setopt( hcUrl, HB_CURLOPT_HTTPHEADER , {'Authorization: Zoho-oauthtoken ' + cToken})
curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, xJson )
if curl_easy_perform( hCurl ) == 0
uValue = curl_easy_dl_buff_get( hCurl )
endif
endif
hHashRes := hb_jsondecode(uValue) //, @aHashRes)
Depura(hHashRes)
Depura("RESPUESTA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
Depura(hHashRes)
Depura("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<FIN RESPUESTA")
Pero cuando intento enviar el fichero no me funciona y no encuentro información de como indicarle a curl los datos del fichero que quiero enviar
Estoy usando este código pero no funciona, ya he probado todo lo que se me ocurre para indicarle el
cFile , además no está definido HB_CURLOPT_RETURNTRANSFER
- Code: Select all Expand view
cFile := "X:/PdfS/ZOHO_PRE.Pdf"
curl_easy_setopt( hcUrl, HB_CURLOPT_URL, cWeb)
//curl_easy_setopt( hcUrl, HB_CURLOPT_RETURNTRANSFER , .T.)
curl_easy_setopt( hcUrl, HB_CURLOPT_ENCODING , '')
curl_easy_setopt( hcUrl, HB_CURLOPT_MAXREDIRS , 10)
curl_easy_setopt( hcUrl, HB_CURLOPT_TIMEOUT , 0)
curl_easy_setopt( hcUrl, HB_CURLOPT_FOLLOWLOCATION , .t.)
curl_easy_setopt( hcUrl, HB_CURLOPT_HTTP_VERSION , HB_CURL_HTTP_VERSION_1_1)
curl_easy_setopt( hcUrl, HB_CURLOPT_CUSTOMREQUEST , 'POST')
curl_easy_setopt( hcUrl, HB_CURLOPT_HTTPHEADER , {'Authorization: Zoho-oauthtoken ' + cToken})
//curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, xJson )
Gracias a todos
Un saludo
Correcto para enviar datos, lo puedes hacer manera
fácil, pero cuando necesitas enviar un fichero, debes indicarle a curl que tipo de fichero vas enviar. En php hay una función que se encarga de "convertir" el archivo para que pueda ser enviado al servidor. Estuve buscando en el foro, pero no se en donde buscar la traducción de la función curl_file_create, de casualidad alguno de los masters sabe que se debe hacer, o en donde buscar la traducción de esa funcion?
- Code: Select all Expand view
$cfile = curl_file_create('resource/test.png','image/png','testpic'); // try adding
https://www.php.net/manual/es/class.curlfile.php#115569miarcod, por otro lado, no se si tengas el control de lado del servidor?, si lo tienes puedes subir cualquier archivo en modo dato y luego convertirlo al formato real.
De antemano gracias