Sto tentando di inviare una richiesta a un server Web utilizzando php e arricciare. Non ho mai fatto qualcosa di simile prima e sebbene ci siano molti buoni esempi online ho alcune difficoltà a capire alcuni dei comandi di arricciatura.Invia una richiesta di post XML a un server Web con CURL
Questo è ciò che voglio fare: esiste un servizio Web stabilito (ad esempio: servizio di mappe Web) e desidero che il mio codice php invii una richiesta XML post a questo servizio. Come risposta voglio ottenere un file XML.
Questo è quello che ho fino ad ora:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
/*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/
/* curl_setopt($ch, CURLOPT_HEADER, 0);*/
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
/*curl_setopt($ch, CURLOPT_REFERER, '');*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ch_result = curl_exec($ch);
curl_close($ch);
echo $ch_result;
Come ho già detto io sono abbastanza nuovo in PHP e anche nell'uso ricciolo e penso che mi manca alcuni concetti. Le mie domande sono: 1) Qual è la stringa (link) che devo mettere in:
curl_setopt($ch, CURLOPT_URL, '');
E 'il nome host del servizio di cui voglio inviare la richiesta?
2) Nella riga 6 la variabile $ xml contiene il file xml che desidero inviare come richiesta. È corretto o si suppone che questa variabile contenga qualcos'altro?
3) In quali casi è necessario utilizzare un httpheader o un'intestazione (riga3 e riga4);
Grazie per l'aiuto. Dimitris
Quindi all'interno dei tag ho messo tutta la stringa XML? –
user1919
Se l'intero xml è in $ xml, tale riga deve essere: curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ xml); – PKeidel
Un'altra cosa che non ho capito chiaramente è ciò che la variabile $ url contiene. È il nome host del server che invierò la richiesta? – user1919