FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour hb_curl (Ejemplos).-
Posts: 140
Joined: Thu Feb 02, 2006 12:09 PM
hb_curl (Ejemplos).-
Posted: Fri Oct 14, 2011 03:02 PM

Saludos Desde Venezuela;

Quisiera saber si alguien tiene ejemplos de uso de hb_curl con FWH.

Gracias de antemano.

Mario Antonio Gonz谩lez Osal

Venezuela

m a g 0 7 1 @ g m a i l. c o m
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: hb_curl (Ejemplos).-
Posted: Thu Oct 20, 2011 05:02 PM
Hola amigo,

CURL es bastante amplia. En mi caso la us茅 para subir un fichero a la Agencia Tributaria Espa帽ola para validar una liquidaci贸n trimestral de IVA. Si el resultado es correcto, te devuelve un pdf con el borrador de la liquidaci贸n, si es incorrecto debes buscar la lista de errores.
Deben pasarse varios par谩metros con el m茅todo POST.
En las contribs de Harbour est谩 el c贸digo y hay ejemplos de su uso tambien.

El c贸digo:

Code (fw): Select all Collapse
聽 聽 聽 聽 聽MsgWOn( 'Contactando Agencia Tributaria...' )

聽 聽 聽 聽 聽curl_global_init()

聽 聽 聽 聽 聽IF ! Empty( curl := curl_easy_init() )
聽 聽 聽 聽 聽 聽 cTexto:= MemoRead(cFileName)
聽 聽 聽 聽 聽 聽 tmp1 := '<T3030'+cEjercicio+'0A0000><AUX>'+Space(300)+'</AUX><VECTOR>001FIN'+Space(294)+'</VECTOR>'+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 urlencode( cTexto ) +'</ T3030'+cEjercicio+'0A0000>'
// variables POST
聽 聽 聽 聽 聽 聽 tmp := 'HID=IE13030B&TIA='+If(oRB:TipoDecl$'UG','I',oRB:TipoDecl)+'&NDC='+AllTrim(DatTrib->NIF)+'&NRC=&ING=&NRR=&ICO=&NR1=&IN1=&NR2=&IN2=&NR3=&IN3=&NR4=&IN4=&NR5=&IN5=&NR6=&IN6=&NR7=&IN7=&IDI=ES&F01='+tmp1+;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽'&TXT=&FIR=&FIN=F&EJF='+cEjercicio+'&MOD=303&PRG=EWLINKPS'
聽 聽 聽 聽 聽 聽 #include "hbcurl.ch"
聽 聽 聽 聽 聽 聽 curl_easy_setopt( curl, HB_CURLOPT_DOWNLOAD )
聽 聽 聽 聽 聽 聽 curl_easy_setopt( curl, HB_CURLOPT_URL, "https://www2.agenciatributaria.gob.es/es13/l/zi21zilk0021")
聽 聽 聽 聽 聽 聽 curl_easy_setopt( curl, HB_CURLOPT_POSTFIELDS, tmp)
聽 聽 聽 聽 聽 聽 curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYPEER, .f. )
聽 聽 聽 聽 聽 聽 curl_easy_setopt( curl, HB_CURLOPT_SSL_VERIFYHOST, .f. )
聽 聽 聽 聽 聽 聽 curl_easy_setopt( curl, HB_CURLOPT_DL_BUFF_SETUP )

聽 聽 聽 聽 聽 聽 if curl_easy_perform( curl ) == 0
聽 聽 聽 聽 聽 聽 聽 聽MsgWOff()

聽 聽 聽 聽 聽 聽 聽 聽tmp := curl_easy_dl_buff_get( curl )

聽 聽 聽 聽 聽 聽 聽 聽If left( tmp, 4 ) == '%PDF'
聽 聽 聽 聽 聽 聽 聽 聽 聽 Memowrit( 'm303.pdf', tmp )
聽 聽 聽 聽 聽 聽 聽 聽 聽 If MsgYesNo( 'Desea ver el borrador generado?' )// Sociedades O Domiciliacion
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽ShellExecute( , "Open", 'm303.pdf' )
聽 聽 聽 聽 聽 聽 聽 聽 聽 EndIf
聽 聽 聽 聽 聽 聽 聽 聽Else
聽 聽 聽 聽 聽 聽 聽 聽 聽 If 'Err[' $ tmp // Hay una lista de errores
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽tmp:= SubStr( tmp, AT( 'Err[', tmp ) )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽aLista := ListAsArray( SubStr( tmp, AT( 'Err[', tmp ) ), ';', .T. )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽aSize( aLista, 20 )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽tmp:= 'Lista de Errores'+CRLF
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽For i:= 1 To Len( aLista )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 aLista[i] := SubStr( aLista[i], AT( "'", aLista[i] )+1 )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 aLista[i] := Left( aLista[i], Len( aLista[i] ) - 1 )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 if !Empty( aLista[i] )
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽tmp+= CRLF + aLista[i]
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 endif
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽EndFor
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽MsgAlert( tmp )
聽 聽 聽 聽 聽 聽 聽 聽 聽 Else
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽MsgAlert( tmp, 'Error en el procesamiento de la AEAT' )
聽 聽 聽 聽 聽 聽 聽 聽 聽 EndIf
聽 聽 聽 聽 聽 聽 聽 聽EndIf
聽 聽 聽 聽 聽 聽 Else
聽 聽 聽 聽 聽 聽 聽 聽MsgInfo( 'Problemas en la comunicaci贸n' )
聽 聽 聽 聽 聽 聽 EndIf
聽 聽 聽 聽 聽 聽 curl_easy_reset( curl )
聽 聽 聽 聽 聽Else
聽 聽 聽 聽 聽 聽 MsgInfo( 'Problemas para inicializar conexiones' )
聽 聽 聽 聽 聽EndIf
聽 聽 聽 聽 聽MsgWOff()

聽 聽 聽 聽 聽curl_global_cleanup()


en realidad como ves las llamadas a la configuracion de curl son pocas, pero funciona 100%. Hoy venc铆a la presentacion del tercer trimestre de IVA, y hemos hecho casi 400 presentaciones de clientes y sin 1 solo problema de software.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 140
Joined: Thu Feb 02, 2006 12:09 PM
Re: hb_curl (Ejemplos).-
Posted: Thu Oct 20, 2011 05:25 PM

Gracias Carlos
Por el ejemplo y la explicacion.

Mario Antonio Gonz谩lez Osal

Venezuela

m a g 0 7 1 @ g m a i l. c o m
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: hb_curl (Ejemplos).-
Posted: Thu Oct 20, 2011 11:43 PM

Carlos,

Por favor, 驴podr铆as indicarme d贸nde conseguir informaci贸n para generar el modelo 303 via internet?.

Si pudieras poner el ejemplo completo ser铆a de mucha utilidad.

Mil gracias.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.

Continue the discussion