Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: ssccaann43 en Enero 05, 2015, 04:25:25 pm

Título: Cómo enviar un JSON a una web site?
Publicado por: ssccaann43 en Enero 05, 2015, 04:25:25 pm
Buenas tardes, tengo una interrogante...

Dispongo de una estructura la cual deseo enviar a un site, por ejemplo este: www.invensoftware.com.ve/json

La estructura json a enviar es:

[
   {
      "usuario_id":18500,
      "producto_id":"A0001",
      "titulo":"Bujias ecosport 2.0",
      "descripcion":"bujis orininales motorcrapt",
      "cantidad":2.5,
      "costo":250.14,
      "precio":450.12,
      "imagen":"ffd8ffe000104a4649460001....",
      "imagen_tumbs":"ffd8ffe000104a4649460001020...."
   }
]

Cómo puedo hacer para enviar esa estructura a ese site?
Título: Re:Cómo enviar un JSON a una web site?
Publicado por: Albertomi en Enero 06, 2015, 03:11:52 am
Estimado ssccaann43

La estructura que muestras corresponde en JSON a lo que se conoce como un arreglo. Estoy asumiendo que es el registro que quieres insertaren una base de datos.
El código que a continuación ensayo no lo he probado "no estoy seguro si va funcionar" pero es por donde me inclinaría a iniciar la exploración de enviar data en formato JSON. En el mismo código he tratado de brindar una explicación.

=====================================================================
Private Sub EnviarDatos_Click()
  ' Agrega una referencia "Microsoft XML, v6.0" library
  Dim jsonHTTP As New MSXML2.XMLHTTP60
  Dim strUrl As String
  Dim strReq As String
 
  ' La URL de tu servicio JSON
  strUrl = "
www.invensoftware.com.ve/json (http://www.invensoftware.com.ve/json) "
 
  ' Cuerpo del POST request
  strReq = "[" & _
               "{" & _
                  """usuario_id"":18500," & _
                  """producto_id"":""A0001""," & _
                  """titulo"":""Bujias ecosport 2.0""," & _
                  """descripcion"":""bujis orininales motorcrapt""," & _
                  """cantidad"":2.5," & _
                  """costo"":250.14," & _
                  """precio"":450.12," & _
                  """imagen"":""ffd8ffe000104a4649460001....""," & _
                  """imagen_tumbs"":""ffd8ffe000104a4649460001020....""" & _
               "}" & _
            "]"
 
  ' Realizar el request
  With jsonHTTP
    .Open "POST", strUrl, False                                                                                ' Prepara POST request
    .setRequestHeader "Content-Type", "application/jsonrequest; charset=utf-8"    ' Tipo de contenido JSON Request ...
    .setRequestHeader "Accept", "application/jsonrequest"                                      ' Tipo aceptado JSON Request.
    .send strReq                                                                                                        ' Envia el request al servidor
    Debug.Print .responseText & vbCrLf                                                                   ' Imprimir los resultados en la ventana inmediato
  End With
End Sub

=====================================================================
Saludos desde algún lugra de Lima-Perú
 
Título: Re:Cómo enviar un JSON a una web site?
Publicado por: ssccaann43 en Enero 20, 2015, 02:54:50 pm
Estimado, ignoro el tema de JSON y no me funciona el code que me expones.
Título: Re:Cómo enviar un JSON a una web site?
Publicado por: coco en Enero 20, 2015, 08:11:50 pm
Miguel, fijate lo siguiente.
1º, proba borrandole "; charset=utf-8" en la linea .setRequestHeader "Content-Type", "application/jsonrequest; charset=utf-8", ya que a mi me hizo llorar sangre hasta que me di cuenta que el "charset=utf-8" no funciona con servidores en unix/linux/mac.
2º, en tu sitio, como esperas el JSON?
-> si lo lees en un php, tenes varias formas. Con post, podes enviarlo como raw data, o como algun campo de un formulario. Para el primer caso, haces tal cual como dice albertomi, y para el segundo caso, deberias modificar   .send strReq   por   .send "campo=" & strReq 
3º, el JSON que generó albertomi es correcto. El json en realidad es una serializacion de propiedades de objetos, es muy sencillo realmente.

saludos