Envoyer des données XML en utilisant HTTP POST avec PHP
je dois envoyer ce XML
<?xml version="1.0" encoding="UTF-8"?>
<gate>
<country>NO</country>
<accessNumber>1900</accessNumber>
<senderNumber>1900</senderNumber>
<targetNumber>4792267523</targetNumber>
<price>0</price>
<sms>
<content><![CDATA[This is a test æøå ÆØÅ]]></content>
</sms>
</gate>
à un service de passerelle SMS. Le service écoute les requêtes HTTP POST. Le XML doit être intégré dans le corps de la requête POST.
J'utilise PHP et le cadre CodeIgniter, mais je suis un total PHP n00b, donc idéalement j'aurais besoin d'un guide complet, mais tout pointeur dans la bonne direction serait apprécié.
19
demandé sur
Muhammad Wasim Shahzad
2009-11-02 15:19:46
2 réponses
Vous pouvez utiliser la bibliothèque cURL pour poster des données: http://www.php.net/curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_URL, "http://websiteURL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "XML=".$xmlcontent."&password=".$password."&etc=etc");
$content=curl_exec($ch);
où postfield contient XML que vous devez envoyer - vous aurez besoin de nommer le postfield le service API (Clickatell je suppose) attend
31
répondu
dusoft
2009-11-02 12:21:23
une Autre option serait file_get_contents()
:
// $xml_str = your xml
// $url = target url
$post_data = array('xml' => $xml_str);
$stream_options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded' . "\r\n",
'content' => http_build_query($post_data)));
$context = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);
22
répondu
GZipp
2009-11-02 16:06:24