Salve a tutti,
dopo estenuanti ricerche in vari forum
mi sono accorto che il codice per fare una richiesta POST ad una pagina con delle variabili, era sul manuale di PHP.
Vi riporto il codice commentato:
Codice PHP:
$content = 'vara=a&varb=b';
$content_length = strlen($content);
$headers= "POST /prova.php HTTP/1.0\r\nHost: localhost\r\nContent-length: $content_length\r\nContent-type: application/x-www-form-urlencoded\r\n\r\n";
$fp = fsockopen("localhost", 80);
if (!$fp) return false;
fputs($fp, $headers);
fputs($fp, $content);
$headers = "";
while ($str = trim(fgets($fp, 4096)))
$headers .= "$str\n";
$body = "";
while (!feof($fp))
$body .= fgets($fp, 4096);
fclose($fp);
echo $headers."
".$body;
La pagina prova.php fa semplicemente un print_r($_POST).
Il tutto funziona correttamente e la pagina mi stampa gli header di risposta ed il risultato dell'elaborazione (print_r) di prova.php.
La mia domanda adesso è: se io volessi inviare via POST dei dati XML alla pagina prova.php (come è il principio di funzionamento di XMLRPC e SOAP), come fa prova.php ad usare tali dati XML?? :master:
Per fare la richiesta non ci sono problemi, basta modificare il content-type in text/xml
ed inviare dati XML anzichè assegnazioni di variabili separate da &
Codice PHP:
$content = '<tag>valore</tag><tag2>valore2</tag2>';
$content_length = strlen($content);
$headers= "POST /prova.php HTTP/1.0\r\nHost: localhost\r\nContent-length: $content_length\r\nContent-type: text/xml\r\n\r\n";
$fp = fsockopen("localhost", 80);
if (!$fp) return false;
fputs($fp, $headers);
fputs($fp, $content);
$headers = "";
while ($str = trim(fgets($fp, 4096)))
$headers .= "$str\n";
$body = "";
while (!feof($fp))
$body .= fgets($fp, 4096);
fclose($fp);
echo $headers."
".$body;
ma la ricezione come si fa?
Grazie in anticipo