Comunidad de diseño web y desarrollo en internet online

php+ssl

Citar            
MensajeEscrito el 03 Abr 2007 10:45 am
tengo una duda d como hacer una peticion a un servidor externo mediante php
he conseguido hacer la peticion para paginas http

Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php

error_reporting(E_ALL);

echo "<h2>Conexi&oacute;n TCP/IP</h2>\n";

/* Obtener el puerto para el servicio WWW. */
$puerto_servicio = getservbyname('www', 'tcp');

/* Obtener la direccion IP del host de destino. */
$direccion = gethostbyname('www.google.es');

/* Crear un socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() fall&oacute;: motivo: " . socket_strerror($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Intentando una conexi&oacute;n con '$direccion' en el puerto '$puerto_servicio'...";
$resultado = socket_connect($socket, $direccion, $puerto_servicio);
if ($resultado < 0) {
    echo "socket_connect() fall&oacute;.\nMotivo: ($resultado) " .
         socket_strerror($resultado) . "\n";
} else {
    echo "OK.\n";
}

$entrada = "GET / HTTP/1.1\r\n";
$entrada .= "Host: index.html\r\n";
$entrada .= "Connection: Close\r\n\r\n";
$salida = '';

echo "Enviando petici&oacute;n HTTP HEAD...";
socket_write($socket, $entrada, strlen($entrada));
echo "OK.\n";

echo "Leyendo respuesta:\n\n";
while ($salida = socket_read($socket, 2048)) {
    echo $salida;
}

echo "Cerrando socket...";
socket_close($socket);
echo "OK.\n\n";
echo("$direccion");
?> 
</body>
</html>


Pero para paginas https no soy capaz, he probado esto:

Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?php

error_reporting(E_ALL);

echo "<h2>Conexi&oacute;n TCP/IP</h2>\n";

/* Obtener el puerto para el servicio WWW. */
$puerto_servicio = "443";

/* Obtener la direccion IP del host de destino. */
$direccion = gethostbyname('https://ovc.catastro.meh.es');

/* Crear un socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() fall&oacute;: motivo: " . socket_strerror($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Intentando una conexi&oacute;n con '$direccion' en el puerto '$puerto_servicio'...";
$resultado = socket_connect($socket, $direccion, $puerto_servicio);
if ($resultado < 0) {
    echo "socket_connect() fall&oacute;.\nMotivo: ($resultado) " .
         socket_strerror($resultado) . "\n";
} else {
    echo "OK.\n";
}

$entrada = "GET / HTTP/1.1\r\n";
$entrada .= "Host: /CYCBienInmueble/OVCBusqueda.aspx\r\n";
$entrada .= "Connection: Close\r\n\r\n";
$salida = '';

echo "Enviando petici&oacute;n HTTP HEAD...";
socket_write($socket, $entrada, strlen($entrada));
echo "OK.\n";

echo "Leyendo respuesta:\n\n";
while ($salida = socket_read($socket, 2048)) {
    echo $salida;
}

echo "Cerrando socket...";
socket_close($socket);
echo "OK.\n\n";
echo("$direccion - $puerto_servicio");
?> 
</body>
</html>



pero me da este error

Conexión TCP/IP
OK. Intentando una conexión con 'https://ovc.catastro.meh.es' en el puerto '443'...
Warning: socket_connect() [function.socket-connect]: Host lookup failed [0]: El nombre solicitado es válido y se ha encontrado en la base de datos, pero no tiene asociados los datos correctos que se intentan resolver. in C:\AppServ\www\test3\https.php on line 30
OK. Enviando petición HTTP HEAD...
Warning: socket_write() [function.socket-write]: unable to write to socket [0]: No se ha permitido una petición para enviar o recibir datos ya que el socket no está conectado y no se ha proporcionado ninguna dirección, al realizar el envío en un socket de datagramas por medio de una llamada sendto. in C:\AppServ\www\test3\https.php on line 44
OK. Leyendo respuesta:
Warning: socket_read() [function.socket-read]: unable to read from socket [0]: No se ha permitido una petición para enviar o recibir datos ya que el socket no está conectado y no se ha proporcionado ninguna dirección, al realizar el envío en un socket de datagramas por medio de una llamada sendto. in C:\AppServ\www\test3\https.php on line 48
Cerrando socket...OK. https://ovc.catastro.meh.es - 443


Alguien me podria indicar como hacer, q fallo o algo

Por sk8erboi

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Abr 2007 01:15 am
revisa si no te estas comiendo algun parametro obligatorio... y no existe la funcion secure_socket ?? fijate en php.net debe estar la solucion :)

Por tomasdev

220 de clabLevel

1 tutorial

 

Argentina por ahora...

firefox
Citar            
MensajeEscrito el 13 Abr 2007 07:47 am
Uno d los posibles problemas es q no se si tengo q tener instalado el openssl o algo asi.
No se si hace falta para poder manejar estas funciones con el php, o solo es necesario para hacer un servidor seguro.

En el php.ini descomente la opcion d ssl, pero si hago un info del php no me indica q este cargado.

Por sk8erboi

78 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.