HTTPOST envio de un archivo JSON y respuesta

258 views
Skip to first unread message

Juan Miguel Solis

unread,
Jul 21, 2026, 6:00:51 AMJul 21
to Comunidad de Visual Foxpro en Español
Buenos dias/tardes a todos

Después de la inestimable ayuda vuestra y usando la clase JSON de Victor Espina (muchas gracias por crearla y ponerla para su uso y ayudarme a usarla en condiciones, ya parece que va bien, solo que lo datos salen descolocados, per se pueden leer ).

Ahora el problema que tengo es usar el HTTPPOST para enviar el archivo JSON generado, pare ello tengo que acceder a una un sitio web con un aPI-Key (una clave) y luego enviar el fichero JSON generado, yo he visto que hay un método HTTPPOST en la case JSON, pero por mas vueltas que le doy no soy capaz de sacar un ejemplo que pueda usar, alguien la ha utilizado para que me pueda abrir un poco los ojos.

Gracias 

Jose Antonio Blasco

unread,
Jul 21, 2026, 7:03:52 AMJul 21
to publice...@googlegroups.com
Deberás recurrir a la documentación que te facilite el gestor del webservice, pero si te sirve de ayuda, yo tengo que usar algo parecido, y lo hago de la siguiente manera:

        oHTTP.Open("POST",tcURL,.F.)  && tcURL es la URL facilitada

        *-- Establecer cabeceras para JSON
        oHTTP.setRequestHeader("Content-Type", "application/json;charset=utf-8")
        oHTTP.setRequestHeader("Accept", "application/json; charset=utf-8")
        *
        oHTTP.setRequestHeader("X-API-Key", tcAPI)  && tcAPI es la API-Key

Espero que te sirva de algo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2



--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/7aa7ebaf-5c3f-42d8-80b1-459a2518e09fn%40googlegroups.com.

Victor Espina

unread,
Jul 21, 2026, 10:59:09 AMJul 21
to Comunidad de Visual Foxpro en Español
En la pagina de la libreria JSON en github (https://github.com/vespina/json) hay un ejemplo detallado de como enviar un request HTTP POST que te puede servir de guia.

Victor Espina

Juan Miguel Solis

unread,
Jul 21, 2026, 12:17:24 PMJul 21
to publice...@googlegroups.com
Ok, le echo un vistazo.

Gracias 

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/6bxY-TQ6lFc/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/9c809b8f-ce73-47bb-8865-535b20b0e1ban%40googlegroups.com.

Juan Miguel Solis

unread,
Jul 22, 2026, 9:51:02 AMJul 22
to publice...@googlegroups.com
Hola Jose Antoni

Pero aqui esta usando alguna librería  ?

Un saludo

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/6bxY-TQ6lFc/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAFg9aWxgXTrTWaehfoXwzZWJjPGNKXQ4DTbS4A%2BNZuD_ibhpLw%40mail.gmail.com.

Jose Antonio Blasco

unread,
Jul 23, 2026, 2:10:54 AMJul 23
to publice...@googlegroups.com
No, ninguna librería.
La empresa que facilita ese webservice, me envió la documentación de como hacer ese POST y como incorporar la API-Key que te generan ellos para poder usar sus servicios.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Juan Miguel Solis

unread,
Jul 26, 2026, 9:24:19 AMJul 26
to publice...@googlegroups.com
Hola

Pero el oHTTP.Open ese objeto de finde lo sacas o es que la yo tiene implícito el Vfp ?

Perdona pero es que ddtusxtemas no se me dan muy bien. 

Un saludo

Jose Antonio Blasco

unread,
Jul 27, 2026, 2:28:36 AMJul 27
to publice...@googlegroups.com
Disculpa, te puse exclusivamente la parte del código que afectaba a la "API-Key".
El código completo es:

******************************************************************
    oHTTP = Createobject('Msxml2.ServerXMLHTTP.6.0')

    *-- Configurar los timeouts: DNS, conexión, envío, recepción (en milisegundos)
    oHTTP.setTimeouts(10000, 15000, 30000, 60000)

    *-- Otros parámetros
    oHTTP.setOption(2) = 13056      && Ignorar errores

    Try
        *-- Abrir conexión en modo síncrono
        oHTTP.Open("POST",tcURL,.F.)


        *-- Establecer cabeceras para JSON
        oHTTP.setRequestHeader("Content-Type", "application/json;charset=utf-8")
        oHTTP.setRequestHeader("Accept", "application/json; charset=utf-8")
        *
        oHTTP.setRequestHeader("X-API-Key", tcAPI)
        oHTTP.setRequestHeader("X-SIF", tcSIF)

        *-- Enviar Petición
        oHTTP.Send(tcJSON)

        *-- Verificar respuesta
        If oHTTP.Status = HTTPSTATUS_OK && Ha habido Respuesta
            RespuestaWS = oHTTP.responseText
            sError = 'OK'
        Else
            sError = Alltrim(Str(oHTTP.Status)) + ': ' + Alltrim(oHTTP.StatusText)
            RespuestaWS = STREXTRACT(oHTTP.responseText,["message":"],["])
        Endif

    Catch To loErr
        sError = Alltrim(Str(loErr.ErrorNo)) +  ': ' + Alltrim(loErr.Message)
        RespuestaWS = 'Envío FALLIDO'
    Endtry
******************************************************************

Verás que también hay un dato "X-Sif" que también es específico del proveedor, como el "API-Key"

Un saludo.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Juan Miguel Solis

unread,
Jul 27, 2026, 3:54:50 AMJul 27
to publice...@googlegroups.com
Ok, ahora lo entiendo mejor, muchas gracias a ver cómo puedo adaptar esto para más o menos me valga😀😀😀

Un saludo 

Victor Espina

unread,
Jul 27, 2026, 10:46:08 AMJul 27
to Comunidad de Visual Foxpro en Español
Ese mismo codigo usano el metodo httpPost de la libreria JSON seria asi:

LOCAL cHeaders
cHeaders = ""
TEXT TO cHeaders TEXTMERGE NOSHOW
Content-Type: application/json
Accept: application/json
X-API-Key: <<tcAPI>>
X-SIF: <<tcSIF>>
ENDTEXT

LOCAL oResp
oResp = JSON.httpPost(tcUrl, tcJSON, cHeaders)
IF oResp.hasError
   THROW oResp.errorMsg
   RETURN
ENDIF

IF oResp.status = HTTPSTATUS_OK
   RespuestaWS = oResp.raw  && oResp.JSON contiene el string JSON ya parseado automaticamente
   sError = 'OK'
ELSE
   sError = Alltrim(Str(oResp.StatusCode))  && La libreria JSON no maneja statustext por ahora
   RespuestaWS = 'Envio FALLIDO'
ENDIF



Victor Espina

Juan Miguel Solis

unread,
Jul 27, 2026, 2:42:26 PMJul 27
to publice...@googlegroups.com
Gracias, le echo un vistazo.

Un saludo 

Jose Antonio Blasco

unread,
Jul 28, 2026, 2:08:00 AMJul 28
to publice...@googlegroups.com
!!! Muchas gracias Victor !!!
Voy a añadir esa forma de uso entre la documentación que tengo de tu librería.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Jose Antonio Blasco

unread,
Jul 28, 2026, 2:14:50 AMJul 28
to publice...@googlegroups.com
En un post posterior amplio todo el código.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Reply all
Reply to author
Forward
0 new messages