PHP ile HTTP POST kullanarak XML veri gönderme

2 Cevap php

Ben bu XML göndermek gerekir

<?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>

SMS ağ geçidi hizmeti için. Hizmet HTTP POST istekleri dinler. XML POST isteği VÜCUT gömülü olması gerekir.

Ben PHP ve CodeIgniter çerçeve kullanarak yapıyorum ama toplam PHP n00b değilim, bu yüzden ideal bir ayrıntılı bir rehber gerekir, ama doğru yönde herhangi bir işaretçiler mutluluk duyacağız.

2 Cevap

you can use cURL library for posting data: 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);

postfield göndermek için gereken XML içeren nereye - sen API servis (Clickatell sanırım) beklediği postfield isim gerekir

Başka bir seçenek olacaktır 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);