Enviar Datos a una API mediante POST

589 views
Skip to first unread message

Norberto Mario Alvarez

unread,
Oct 5, 2018, 8:45:14 AM10/5/18
to Comunidad de Visual Foxpro en Español
Estimada Lista, tengo desarrollado un sistema en VFP y me piden enviar datos a una API, para alimentar una base de datos que esta en la WEB, La info que me tiran es la siguiente:

DOMINIO : www.dominio.com.ar

Empleados:

POST DOMINIO/api/employer/{code}/

 

CAMPOS  => (cuil_emp, seccion, raz_empl,cel_empl, ema_empl, dom_empl)

Si alguien me puede tirar una idea, no se por donde empezar, tampoco se si tengo que instalar algo donde tengo instalado el sistema. Desde ya muchas gracias por vuestra atención.

Norberto Alvarez

Hernan Serrano

unread,
Oct 5, 2018, 9:47:39 AM10/5/18
to publice...@googlegroups.com
Tienes que averiguarte cual es el formato del json y otros datos. necesarios para poder comunicarte.

cJASON = {"1231231", "seccion", "raz_empl","cel_empl", "ema_empl", "dom_empl"}
Fijate en este ejemplo. Busca en la web
oHTTP = CREATEOBJECT('Msxml2.ServerXMLHTTP.6.0')
oHTTP.OPEN("POST",   "www.dominio.com.ar/api/employer/{12345}/ " , .F.)
                oHTTP.setRequestHeader("Content-Type", "application/json")
                        oHTTP.SEND(cJSON)
--
Tico Support S. A.
Tel. (506)8819-4369

Norberto Mario Alvarez

unread,
Oct 5, 2018, 10:35:21 AM10/5/18
to Comunidad de Visual Foxpro en Español
Hola Hernan, gracias por tu pronta respuesta, otro dato que me dan es el siguiente:


Enviar por get esta “key” = 54cdffne64rfrrn443mnnff54 

Quedando como por ejemplo DOMINIO/api/brand/{code}/?key=54cdffne64rfrrn443mnnff54

Disculpa mi ignorancia pero que seria el JSON y aparte te pregunto si necesito instalar algo en el puesto de trabajo.
Muchas gracias

Norberto Alvarez

Damian Lana

unread,
Oct 5, 2018, 11:34:23 AM10/5/18
to publice...@googlegroups.com
Hola, te paso esto que me tomo mucho tiempo, va un ejemplo 


Do json

If File("parametr_peleg.dbf")
Select 0
Use parametr_peleg
lctoken= Alltrim(tocken )
lcurl = Alltrim(url )
Else
Select 0
Create Table parametr_peleg (url c(200),tocken c(200))
Appen Blank
Replace url With ' http:/api/employer/{code}/ '
Replace tocken With '73b1f30a5879bc43c18e8f8cb5ab2f78'
lctoken= Alltrim(tocken )
lcurl = Alltrim(url )
Endif
If File("error_envionuve.dbf")
If !Used("error_envionuve")
Select 0
Use error_envionuve
Endif
Else
Select 0
Create Table error_envionuve (datos m, Error m, fechareal T )

Endif


******


PROCEDURE marcar_pedidos_bajados

lctabla = 'pedido'
lcregistro = 'pedidos'
lcaction= 'cambiarEstadoRegistro'
lcst = 'O'

If File("parametr_peleg.dbf")
Select 0
Use parametr_peleg
lctoken= Alltrim(tocken )
lcurl = Alltrim(url )
ENDIF

Select parametr_peleg
Use


IF !USED("rela_pedidos_web")
USE rela_pedidos_web
ELSE
SELECT rela_pedidos_web
ENDIF

lcmk = '["'

SCAN FOR !marcar
lcmk =  lcmk +ALLTRIM(mpk)+'"'
IF LEN(lcmk)>=100   
lcmk = lcmk  +"]"
DO marcar_pedidos_viejos WITH lctabla,lcaction,lctoken,lcurl,"POST","vendedor_web",lcst,lcregistro ,lcmk  
lcmk = '["'

WAIT WINDOW NOWAIT "Esperando 15 segundos.." TIMEOUT 15
ELSE 
lcmk = lcmk +',"'
ENDIF
REPLACE marcar WITH .t.
ENDSCAN

IF LEN(lcmk)<100 AND LEN(lcmk)>2
lcmk = SUBSTR(lcmk,1,len(lcmk)-2) +"]"
DO marcar_pedidos_viejos WITH lctabla,lcaction,lctoken,lcurl,"POST","vendedor_web",lcst,lcregistro ,lcmk  
lcmk = '["'
WAIT WINDOW NOWAIT "Esperando 15 segundos.." TIMEOUT 10
endif


SELECT rela_pedidos_web
USE 



Procedure marcar_pedidos_viejos

Lparameters p_tabla, p_action, p_token, p_url, p_get_pos,p_tabla_resp,p_st,lcregistro,plcmk  


xhr  = Createobject('MSXML2.XMLHTTP')
lcurl =  p_url &&"http://104.131.172.142/chhapi/"

lcparametro = "&token="+p_token + "&action="+p_action + "&st="+p_st + "&registro="+lcregistro+ "&mpk="+ plcmk  
l

xhr.Open("POST",lcurl ,.F.)
xhr.setrequestheader("Content-Type", "application/x-www-form-urlencoded")
xhr.Send(lcparametro )


xhr.responsetext
xhr  = .Null.

Return 


Hernan Serrano

unread,
Oct 5, 2018, 12:20:56 PM10/5/18
to publice...@googlegroups.com
Mi estimado, mira este link,
Esta en ingles. 

Ademas en estos hilos encontraras muchas respuestas a tus dudas.


Reply all
Reply to author
Forward
0 new messages