Foros del Web » Programando para Internet » Javascript »

obtener datos de webserver con json

Estas en el tema de obtener datos de webserver con json en el foro de Javascript en Foros del Web. Hola a todos Soy totalmente nuevo en el JSON y tras mucho leer al final he conseguido hacer estas primeras pruebas, aunque los resultados no ...
  #1 (permalink)  
Antiguo 07/12/2015, 07:25
 
Fecha de Ingreso: noviembre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
obtener datos de webserver con json

Hola a todos

Soy totalmente nuevo en el JSON y tras mucho leer al final he conseguido hacer estas primeras pruebas, aunque los resultados no son los esperados, siempre me da error 202,"text":"Not valid JSON structure: Syntax error, malformed JSON

El propietario del webservice me indica lo siguiente

getSessionKey
Este método devuelve la variable session-key necesaria en el resto de las llamadas del webservice.
Parámetros de entrada:
email : Email con el que te diste de alta
passwd : Contraseña del usuario

Ejemplo de Json:
Código:
{
"user": "XXXXXXX",
"parameters": [
{
"email": "[email protected]",
"passwd": "ZZZZ"
}
],
}
Parámetros de salida:
session-key Identifcador único de sesión, necesario para todas las llamadas Web Service.

Ejemplo de Json:
Código:
{
"errors": [{"code": "0", "text": ""}],
"results": [
{
"session-key": "YYYYYYYYYYYYYYYYYYYYYYYYYY"
}
],
}
Visto estas indicaciones esto son los dos ejemplos que he realizado
EJEMPLO 1
Código:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<?php
$data = http_build_query(
		array(
			'email' => '[email protected]',
			'passwd' => 'sakf79hdskfoj'
		)
	);
 
$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-Type: application/json',
        'content' => $data
    )
);
 
$context  = stream_context_create($opts);
 
$json_file = file_get_contents('http://proveedor.com/actions/servicioWS.php?method=getSessionKey', false, $context);
 
$jfo = json_decode($json_file);
 
$session = $jfo->result->session-key;
?>
 
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ejemplo 4</title>
    <link rel="stylesheet" href="style.css" />
</head>
 
<body>
    <div class="container">
        <h1 class="main_title"><?php echo $session; ?></h1>
        <div class="content">
            <ul class="ul_json clearfix">
			<?php echo "sesion ", $session; ?><br/>
			<?php echo "data ",$data; ?><br/>
			<?php echo "opts ",$opts; ?><br/>
			<?php echo "context ", $context; ?><br/>
			<?php echo "jsonfile ", $json_file; ?><br/>
            </ul>
        </div><!-- content -->    
    </div><!-- container -->
</body>
</html>
Con el siguiente resultado
sesion 0
data email=email%40mio.com&passwd=sakf79hdskfoj
opts Array
context Resource id #2
jsonfile {"errors":{"code":202,"text":"Not valid JSON structure: Syntax error, malformed JSON.."},"results":""}

Y tras tres dias, no consigo pasar de ahi, siempre error en sintaxis del json,

Otra prueba realizada y con mismo resultado son asi
EJEMPLO 3
Código:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
$.ajax({
    data: {"email": "[email protected]","passwd": "slkjfi93flsld"},
    type: "POST",
    dataType: "json",
    url: "http://proveedor.com/actions/servicioWS.php?method=getSessionKey",
})
 .done(function(data, textStatus, session-key) {
     if ( console && console.log ) {
         console.log( "La solicitud se ha completado correctamente." );
     }
 })
 .fail(function(session-key, textStatus, errorThrown) {
     if ( console && console.log ) {
         console.log( "La solicitud a fallado: " +  textStatus );
     }
});
 
var $session-key = {console.log(session-key)}
var $textStatus = textStatus
</script>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ejemplo 3</title>
    <link rel="stylesheet" href="style.css" />
</head>
 
<body>
    <div class="container">
        <h1 class="main_title"><?php echo $session-key; ?></h1>
        <div class="content">
            <ul class="ul_json clearfix">
 
			<?php echo "sesionkey ",$session-key; ?><br/>
			<?php echo "textStatus ",$textStatus; ?>
 
            </ul>
        </div><!-- content -->    
    </div><!-- container -->
</body>
</html>
Ha llegado el momento en el que ya no puedo continuar solo, y por eso os pregunto

¿Cual de los dos ejemplos es mas correcto?
¿Donde esta el error en el envío de los datos para que siempre me de 202?

Gracias a todos de antemano

Etiquetas: javascript+php, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:38.