PHP - Web Services (asmx) - xml - PHP

   
Vista:

Web Services (asmx) - xml - PHP

Publicado por Kenny (5 intervenciones) el 25/07/2013 20:11:37
Buenas Tardes

Solicito su ayuda en el siguiente caaso, no puedo generar el siguiente cdigo de forma correcta:

Tengo un web Services que no esta en mi servidor, que me devuele un conjunto de datos en formato xml, la consulta requiere de 4 parametros, y lo estoy haciendo en PHP.

Esta es la URL:

http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx?op=CONSULTA_ORDENES_DEPENDENCIA_FECHA

Estuve buscando la forma y en los foros me decian con SOAP o POST con CURL, pero no logre que levanatara bien.

Este es el codigo que hize:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
	// The request URL prefix 
    $request = 'http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx?op=CONSULTA_ORDENES_DEPENDENCIA_FECHA'; 
    echo $request;
 
	// The request parameters	
	$usuario='web_oceb';
	$contraseña='12@N0d3rtF';
	$orden_nro='1255';
	$orden_anno='2013';
 
	echo '<br>';
	echo '<br>';
 
	// urlencode and concatenate the POST arguments 
    $postargs = 'user='.$usuario.'&pwd='.$contraseña.'&orden_nro='.$orden_nro.'&orden_anno='.$orden_anno;
 
	echo $postargs;
 
	$session = curl_init($request);
 
    //curl_setopt($session, CURLOPT_POST, true); 
    //curl_setopt($session, CURLOPT_POSTFIELDS, $postargs); 
    //curl_setopt($session, CURLOPT_HEADER, false); 
    //curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
 
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postargs);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
 
	$result = curl_exec($session);
	curl_close($session);
 
	echo $result;
 
 
	}


Por momentos no me imprime nada mas que los echo de arriba, pero luego me sale el siguiente error:

El sitio web ha detectado un error al recuperar la http://172.16.3.210:8070/complementosBETA/zona/adquisiciones/_aq.php http://172.16.3.210:8070/complementosBETA/zona/adquisiciones/_aq.php. Es posible que esta esté inactiva debido a tareas de mantenimiento o que se haya configurado de forma incorrecta.

Help, que desde hace 2 dias estoy en esto.

Gracias de antemano y si me dicen si ese codigo funcionaria y que corregirle, o tengo que configurar algo en mi maquina, ojo no tengo el servidor de donde saco la URL.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Web Services (asmx) - xml - PHP

Publicado por xve (5516 intervenciones) el 25/07/2013 21:35:35
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Web Services (asmx) - xml - PHP

Publicado por Kenny (5 intervenciones) el 25/07/2013 22:52:42
Estimado

Intente realizar las modificaciones de lo que propusistes y sigue saliendome el error de Servidor. Esto ya me hace dudar si realmente el servidor esta bien o que tengo que configurar en mi php para poder acceder.

Coloco el codigo que modifique por si las dudas, ademas la url como debo ponerla,de que forma?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
 
	// Creamos un array con los valores que se pasaran por post
	$data = array('user' => "web_oceb", '&pwd' => "N0d3rtF", '&orden_nro' => "1255", '&orden_anno' => "2013");
	//$data = array('parametro1' => "valor1", '&parametro2' => "valor2", '&parametro3' => "valor3", '&parametro4' => "valor4");
 
	// Se crea un manejador CURL
	$ch=curl_init ();
 
	// Se establece la URL y algunas opciones
	curl_setopt($ch, CURLOPT_URL, "http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx/CONSULTA_ORDENES_DEPENDENCIA_FECHA");
 
	// Indicamos que enviaremos las variables en POST
	curl_setopt($ch, CURLOPT_POST, 1);
 
	// Adjuntamos las variables
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 
	// Indicamos que el resultado lo devuelva curl_exec()
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
	// Se obtiene la URL indicada
	$result=curl_exec($ch);
 
	echo "El resultado de la web es: ".$result;
 
?>



http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx/CONSULTA_ORDENES_DEPENDENCIA_FECHA


http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx


http://intranetocl.uni.edu.pe

Gracias por le apoyo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Web Services (asmx) - xml - PHP

Publicado por xve (5516 intervenciones) el 26/07/2013 07:28:42
Hola Kenny, por lo que veo, tienes un posible error... al definir las variables, no tienes que poner el &...

Esto:
1
$data = array('user' => "web_oceb", '&pwd' => "N0d3rtF", '&orden_nro' => "1255", '&orden_anno' => "2013");

Tendría que ser así:
1
$data = array('user' => "web_oceb", 'pwd' => "N0d3rtF", 'orden_nro' => "1255", 'orden_anno' => "2013");


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Web Services (asmx) - xml - PHP

Publicado por Kenny (5 intervenciones) el 26/07/2013 17:32:38
Sigue saliendo el error del servidor...
Que horrible esto, no puede ser que no salga, algo mas que pueda ser?
lo de las tres opciones de la url, cual seria la correcta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Web Services (asmx) - xml - PHP

Publicado por xve (5516 intervenciones) el 26/07/2013 17:43:58
Hola Kenny, según veo, podría ser cualquiera de las tres direcciones... esta información tendrían que haberla dado ellos...

Exactamente que información te han dado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Web Services (asmx) - xml - PHP

Publicado por Kenny (5 intervenciones) el 26/07/2013 18:00:18
Buenas

Esta es la direccion que me dieron
http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx?op=CONSULTA_ORDENES_DEPENDENCIA_FECHA

Nota:
Estuve navegando (aun mas), y encontre un codigo que almenos me da un retorno, lo pongo aqui por si me ayudas con ello:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
	// The request parameters	
	$usuario='web_oceb';
	$contraseña='12@N0d3rtF';
	$orden_nro='1255';
	$orden_anno='2013';
 
 
$url = 'http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx?op=CONSULTA_ORDENES_DEPENDENCIA_FECHA';
$data = array('user' => $usuario, 'pwd' => $contraseña, 'orden_nro' => $orden_nro, 'orden_anno' => $orden_anno);
 
// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
 
var_dump($result);
?>


Este codigo me retorna:

bool(false)

SAludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Web Services (asmx) - xml - PHP

Publicado por xve (5516 intervenciones) el 26/07/2013 18:46:32
Kenny, file_get_contents() devuelve false si falla.

prueba este código, lo he probado y me ha funcionado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Se crea un manejador CURL
$ch=curl_init();
 
// Se establece la URL y algunas opciones
curl_setopt($ch, CURLOPT_URL, "intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx/CONSULTA_ORDENES_DEPENDENCIA_FECHA");
 
// Indicamos que enviaremos las variables en POST
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
// Adjuntamos las variables
curl_setopt($ch, CURLOPT_POSTFIELDS, 'user=web_oceb&pwd=12@N0d3rtF&orden_nro=1255&orden_anno=2013');
 
// Indicamos que el resultado lo devuelva curl_exec()
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
// Se obtiene la URL indicada
$result=curl_exec($ch);
 
echo "El resultado de la web es: ".$result;
?>


Al final de esta páginas, indica mas o menos como hacerlo por post: http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx?op=CONSULTA_ORDENES_DEPENDENCIA_FECHA

Coméntanos, ok?

P.D. Cambia las contraseñas una vez te funcione correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Web Services (asmx) - xml - PHP

Publicado por Kenny (5 intervenciones) el 26/07/2013 23:53:55
Estimado

Intente con el codigo que colocastes pero me muestra una pantalla en blanco.

despues de seguir buscando encontre una forma diferente, copio el codigo si te parece bien y si alguien mas necesita algo parecido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
	// The request parameters	
	$usuario='web_oceb';
	$contraseña='12@N0d3rtF';
	$orden_nro='1255';
	$orden_anno='2013';
 
	$url = 'http://intranetocl.uni.edu.pe/SERVICIOS/CONSULTA_ORDENES_DEPENDENCIA.asmx/CONSULTA_ORDENES_DEPENDENCIA_FECHA';
 
	$data = array('user' => $usuario, 'pwd' => $contraseña, 'orden_nro' => $orden_nro, 'orden_anno' => $orden_anno);
 
	$options = array(
		'http' => array(
			'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
			'method'  => 'POST',
			'content' => http_build_query($data),
		),
	);
 
	$context  = stream_context_create($options);
	$result = file_get_contents($url, false, $context);
 
	print_r(utf8_decode($result));
?>


me meustra la informacion que requiero, pero esta en un frmato corrido pero si veo el codigo fuente esta el xml.

lo que pienso yo es guardarlo en un archivo xml y poder leerlo despues de forma normal, con los tag y poder coger la informacio.

Gracias por tu ayuda ahroa a ver el otro problema del archivo xml
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar