PHP: POST directo a través de socket - Userlinux.net

PHP: POST directo a través de socket: Para hacer una petición POST a través de php -sin utilizar curl()- podemos hacerlo simplemente con sockets -con HTTPS si lo queremos seguro- y algo de suerte -para que todo funcione a la primera-: ...

votar

PHP: POST directo a través de socket

Para hacer una petición POST a través de php -sin utilizar curl()- podemos hacerlo simplemente con sockets -con HTTPS si lo queremos seguro- y algo de suerte -para que todo funcione a la primera-:
// Variables
$host = "www.host.com";
$referer = "http://www.host-referer.com";
$path = "/ruta/al/form.php";
$data = "Lo que vamos a mandar por POST";

// Abriendo un socket seguro (443)
$fp = fsockopen('ssl://'.$host, 443, $errno,$errstr,30);

// Enviando cabeceras y datos
fputs($fp, "POST $path HTTP/1.0\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data);

// Recogiendo el resultado
$result = ''; 
while(!feof($fp))
    $result .= fgets($fp, 128);

// Cerramos y visualizamos respuesta
fclose($fp);
print_r($result);
Como veis no hace falta que la petición vaya envuelta en una variable si el servidor no lo espera de esa forma.
 
Archived on : programación
Tags : php socket

Deja un comentario

Tu nombre
Tu email
http://
  « Captcha

[ Userlinux 2001 ~ 2010 | Sindicación ]