Page 1 of 1
Lectura de API desde FW
Posted: Tue Nov 19, 2019 12:50 pm
by jnavas
Saludos a todos
Necesito leer mediante API los valores indicados en la siguiente pagina, es una nueva regulación venezolana para presentar estados financieros según el valor del Petro.
https://www.petro.gob.ve/desarrolladores.html
Agradecido por sus aportes.
Re: Lectura de API desde FW
Posted: Tue Nov 19, 2019 1:13 pm
by Compuin
Buenos dias Sr Juan
Aca hay un ejemplo del uso de las API
https://forums.fivetechsupport.com/view ... t=leer+api
Re: Lectura de API desde FW
Posted: Tue Nov 19, 2019 1:14 pm
by cnavarro
Aqui tienes un ejemplo
http://forums.fivetechsupport.com/viewt ... 01#p197201
pero al ser tan sencilla la api, con curl sería también muy sencillo aunque te obligará a añadir alguna dll junto con el exe
http://forums.fivetechsupport.com/viewt ... rl#p219680
Re: Lectura de API desde FW
Posted: Tue Nov 19, 2019 4:57 pm
by jnavas
Saludos y Gracias.
Code: Select all
#Include "Fivewin.ch"
//--------------------------------
Function Main()
Local oHttp
Try
oHttp := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'POST', "https://petroapp-price.petro.gob.ve/price/", .F. )
oHttp:SetRequestHeader( "Content-Type","application/json")
// oHttp:Send( '{ "Username": "user@company.com", "Password": "secret"}' )
SysRefresh()
MsgInfo(oHttp:ResponseBody)
Return
Application
===========
Path and name: C:\FWH15\samples\PETROS.exe (32 bits)
Size: 2,938,880 bytes
Compiler version: Harbour 3.2.0dev (r1603082110)
FiveWin Version: FWH 15.03
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 11/19/19, 12:53:18
Error description: (DOS Error -2147352567) WINOLE/1007 Unspecified error
(0x80004005): msxml3.dll
Stack Calls
===========
Called from: => TOLEAUTO:RESPONSEBODY( 0 )
Called from: PETROS.prg => MAIN( 22 )
System
======
CPU type: Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz 2200 Mhz
Hardware memory: 8074 megs
Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %
Windows total applications running: 4
1 ,
2 , C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.9600.17810_none_7c5b6
3 GDI+ Window, C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.9600.19457_none_dadc49905bc8c0
4 Task Switching, C:\FWH15\samples\PETROS.exe
Variables in use
================
Procedure Type Value
==========================
TOLEAUTO:RESPONSEBODY
Param 1: O Class: ERROR
MAIN
Local 1: U
Local 2: U
Re: Lectura de API desde FW
Posted: Tue Nov 19, 2019 8:19 pm
by cnavarro
Juan, parece que el error que obtienes es porque no "envias" nada.
Es decir, no utilizas el Send(), ponlo aunque no envíes nada a ver qué obtienes y vas cogiendo pistas: oHttp:Send()
Re: Lectura de API desde FW
Posted: Tue Nov 19, 2019 9:47 pm
by jnavas
Navarro,
Gracias por la recomendacion
Agregue
oHttp:Send()
Esta es la respuesta.
{"status":500,"success":false,"data":null,"message":false}
Code: Select all
Local oHttp
Try
oHttp := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'POST', "https://petroapp-price.petro.gob.ve/price/", .F. )
oHttp:SetRequestHeader( "Content-Type","application/json")
oHttp:Send()
SysRefresh()
MsgInfo(oHttp:ResponseBody)
Return
Re: Lectura de API desde FW
Posted: Tue Nov 19, 2019 10:47 pm
by cnavarro
Ok, bien, entonces lo que te está diciendo es que no le has enviado ningún datos para procesar
Code: Select all
#Include "Fivewin.ch"
//--------------------------------
Function Main()
Local oHttp
local cJson := ""
TEXT INTO cJson
{
coins: [
"BTC",
"DASH",
"LTC",
"ETH",
"PTR"
],
fiats: [
"USD",
"ARS",
"BRL",
"BOB",
"CAD",
"COP",
"CLP",
"MXP",
"NIO",
"PEN",
"DOP",
"TTD",
"UYU",
"ANG",
"CZK",
"DKK"
]
}
ENDTEXT
Try
oHttp := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'POST', "https://petroapp-price.petro.gob.ve/price/", .F. )
oHttp:SetRequestHeader( "Content-Type","application/json")
// Es posible que necesites poner esto también, aunque no lo he probado, prueba sin ello y con ello
// oHttp:SetRequestHeader( "Host", "api-price.petro.dom" )
oHttp:Send( cJson )
MsgInfo(oHttp:ResponseBody)
Return nil
Re: Lectura de API desde FW
Posted: Wed Nov 20, 2019 2:26 am
by jnavas
Navarro
Gracias, esta fue la respuesta generado con el ejemplo que me indicaste
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Bad Request</pre>
</body>
</html>
Re: Lectura de API desde FW
Posted: Wed Nov 20, 2019 11:33 am
by cnavarro
Bien, entonces no nos compliquemos, hazlo asi
Por cierto, puedes llamarme Cristobal.
Code: Select all
#Include "Fivewin.ch"
//--------------------------------
Function Main()
local oHttp
local hJson := { => }
local cJson := ""
hJson[ "coins" ] := {"BTC","DASH","LTC","ETH","PTR"}
hJson[ "fiats" ] := {"USD","ARS","BRL","BOB","CAD","COP","CLP","MXP","NIO","PEN","DOP","TTD","UYU","ANG","CZK","DKK"}
Try
oHttp := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'POST', "https://petroapp-price.petro.gob.ve/price/", .F. )
oHttp:SetRequestHeader( "Content-Type","application/json")
// Es posible que necesites poner esto también, aunque no lo he probado, prueba sin ello y con ello
// oHttp:SetRequestHeader( "Host", "api-price.petro.dom" )
cJson := hb_jsonEncode( hJson,.T.)
// ? cJson
oHttp:Send( cJson )
MsgInfo(oHttp:ResponseBody)
Return nil
Re: Lectura de API desde FW
Posted: Sat Nov 23, 2019 12:14 pm
by jnavas
Cristobal
Gracias,
Lo probare, ahorita estoy mudando de PC, para el mes siguiente tengo planificado migrar mi aplicación de XHB.82/FW24 hacia el nuevo FW que publique Antonio para diciembre, he visto que has creado una clase tdocpanel para crear dashboard, esta disponible?. Enviare precio por favor al correo
adaptaprodrive@gmail.com
Re: Lectura de API desde FW
Posted: Sat Nov 23, 2019 4:06 pm
by cnavarro
Juan, el ejemplo del API está probado por eso lo he puesto
En cuanto a mi clase TDockPnel, la incluí en Fivewin, pero no está disponible el código en la distribución de FiveWin
Si necesitas cualquier cosa, ya sabes, por aqui o a mi correo
Re: Lectura de API desde FW
Posted: Mon Nov 25, 2019 8:44 pm
by jnavas
Cristobal,
Gracias, aun estoy migrando mi PC, apenas este disponible pruebo el API,
Con respecto a la clase tdockpanel necesito crear unos dashboard directos en FW, estoy tramitando la adquisición de FW para diciembre y lograr usarlo de manera productiva, muy elegantes los ejemplos, pronto empezara a compilarlos para implementarlos. Agradecido por los buenos oficios.
Re: Lectura de API desde FW
Posted: Mon Nov 25, 2019 9:01 pm
by cnavarro
Gracias
Las posibilidades de TDockPnel son muchísimas
Cualquier duda, ya sabes.